繁体   English   中英

Microsoft.SqlServer.Types:加载msvcr120.dll时出错(ErrorCode:5)

[英]Microsoft.SqlServer.Types: Error loading msvcr120.dll (ErrorCode: 5)

在我们的项目中,我们使用以下nuget包:

Microsoft.SqlServer.Types

直到最近,一切都运行良好,没有我明显改变ASP.NET应用程序在以下异常开始时中断的任何重要事项:

加载msvcr120.dll发生错误(ErrorCode:5)

描述:执行当前Web请求期间发生未处理的异常。 请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.Exception:加载msvcr120.dll时出错(ErrorCode:5)

堆栈跟踪:

[例外:加载msvcr120.dll错误(ErrorCode:5)]
E:\\ Dev \\ Jacobo \\ ServerApi \\ SqlServerTypes \\ Loader.cs中的SqlServerTypes.Utilities.LoadNativeAssembly(String nativeBinaryPath,String assemblyName):43
E:\\ Dev \\ Jacobo \\ ServerApi \\ SqlServerTypes \\ Loader.cs中的SqlServerTypes.Utilities.LoadNativeAssemblies(String rootApplicationPath):28
E:\\ Dev \\ Jacobo \\ ServerApi \\ Global.asax.cs中的Jacobo.ServerApi.WebApiApplication.Application_Start():26

[HttpException(0x80004005):加载msvcr120.dll错误(ErrorCode:5)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+529
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+185
System.Web.HttpApplication.InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+421
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+359

[HttpException(0x80004005):加载msvcr120.dll时出错(ErrorCode:5)] System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+534 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+117
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+726

应用程序在以下方法中断:

private static void LoadNativeAssembly(string nativeBinaryPath, string assemblyName)
        {
            var path = Path.Combine(nativeBinaryPath, assemblyName);
            var ptr = LoadLibrary(path);
            if (ptr == IntPtr.Zero)
            {
                throw new Exception(string.Format(
                    "Error loading {0} (ErrorCode: {1})",
                    assemblyName,
                    Marshal.GetLastWin32Error()));
            }
        }

这是loader.cs的一部分,它是SqlServerTypes nuget包的一部分。

我检查了bin文件夹并找到了那里存在的SqlServerTypes程序集。 我真的不确定这里出了什么问题。

在此输入图像描述

我今天遇到了这个问题。 我需要实现的修复是确保SQL Server类型文件是我的项目的一部分,因此它们将在发布输出中生成:

解决方案资源管理器中的DLL

只需确保为每个相关的DLL文件设置了Copy to Output Directory 如果在解决方案资源管理器中没有看到它们,则可能需要选择显示所有文件,然后右键单击它们以Include in Project

在解决方案资源管理器中添加了未引用的文件

根据错误代码5,我会说Web应用程序运行的标识无法访问DLL所在的路径。

错误代码5表示:ERROR_ACCESS_DENIED。
请检查该标识是否具有该文件夹/文件的权限。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM