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

Jak*_*sky 7 .net c# sql-server asp.net

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

Microsoft.SqlServer.Types

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

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

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

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

堆栈跟踪:

[例外:错误加载msvcr120.dll(错误码:5)]
SqlServerTypes.Utilities.LoadNativeAssembly(字符串nativeBinaryPath,字符串的AssemblyName)在E:\开发\雅各布\ ServerApi\SqlServerTypes\Loader.cs:43个
SqlServerTypes.Utilities.LoadNativeAssemblies(字符串rootApplicationPath)在E:\开发\雅各布\ ServerApi\SqlServerTypes\Loader.cs:28
Jacobo.ServerApi.WebApiApplication.Application_Start()中E:\开发\雅各布\ ServerApi\Global.asax.cs中: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 []处理程序)+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()));
            }
        }
Run Code Online (Sandbox Code Playgroud)

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

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

在此输入图像描述

joc*_*ull 5

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

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

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

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


Mih*_*scu 3

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

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