Mic*_*eli 179 c# odata asp.net-web-api visual-studio-2013
我收到了错误.有没有其他人得到这个错误?
'/'应用程序中的服务器错误.
无法加载文件或程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)
描述:在执行当前Web请求期间发生了未处理的异常.请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息.异常详细信息:System.IO.FileLoadException:无法加载文件或程序集"System.Web.Http,版本= 4.0.0.0,文化=中性公钥= 31bf3856ad364e35"或它的一个依赖.定位的程序集的清单定义与程序集引用不匹配.(HRESULT异常:0x80131040)
来源错误:
第48行:第49行:第50行:}第51行:第52行:protected void Application_BeginRequest(object sender,EventArgs e)
源文件:d:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs行:50
程序集加载跟踪:下列信息有助于确定程序集"System.Web.Http,版本= 4.0.0.0,文化=中性公钥= 31bf3856ad364e35"无法加载.
===预绑定状态信息===日志:DisplayName = System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35(完全指定)LOG:Appbase = file:/// D: /SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/日志:初始PrivatePath = D:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\bin调用程序集:ThirdPartyWebAPI,Version = 1.0.0.0,Culture = neutral,PublicKeyToken = null.===日志:此绑定在默认加载上下文中启动.日志:使用应用程序配置文件:D:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\web.config日志:使用主机配置文件:C:\ Users\michalc\Documents\IISExpress\config\aspnet.config日志:使用机器配置来自C:\ Windows\Microsoft.NET\Framework\v4.0.30319\config\machine.config的文件.日志:后策略引用:System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http.DLL.日志:尝试下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http .DLL.日志:尝试下载新的URL文件:/// D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL.警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040).探测终止.试图下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http.DLL .日志:尝试下载新的URL文件:/// D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL.警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040).探测终止.试图下载新的URL文件:/// C:/Windows/Microsoft.NET/Framework/v4.0.30319/Temporary ASP.NET Files/root/9184b2ea/c6d4b139/System.Web.Http/System.Web.Http.DLL .日志:尝试下载新的URL文件:/// D:/SM/7.4Test/WebAPIServerV2/ThirdPartyWebAPI/bin/System.Web.Http.DLL.警告:比较程序集名称导致不匹配:主要版本错误:无法完成程序集的设置(hr = 0x80131040).探测终止.无法完成装配设置(hr = 0x80131040).探测终止.无法完成装配设置(hr = 0x80131040).探测终止.
堆栈跟踪:
[FileLoadException:无法加载文件或程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)] d:\ SM\7.4Test\WebAPIServerV2\ThirdPartyWebAPI\Global.asax.cs中的ThirdPartyWebAPI.WebApiApplication.Application_Start():50
[HttpException(0x80004005):无法加载文件或程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)]
System.Web.HttpApplicationFactory.EnsureAppStartCalledForIntegratedMode(HttpContext context,HttpApplication app)+9935033
System.Web.HttpApplication.RegisterEventSubscriptionsWithIIS(IntPtr appContext,HttpContext context,MethodInfo [] handlers)+118
System.Web.HttpApplication .InitSpecial(HttpApplicationState状态,MethodInfo []处理程序,IntPtr appContext,HttpContext上下文)+172
System.Web.HttpApplicationFactory.GetSpecialApplicationInstance(IntPtr appContext,HttpContext context)+336
System.Web.Hosting.PipelineRuntime.InitializeApplication(IntPtr appContext)+296[HttpException(0x80004005):无法加载文件或程序集'System.Web.Http,Version = 4.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其依赖项之一.定位的程序集的清单定义与程序集引用不匹配.(来自HRESULT的异常:0x80131040)]
System.Web.HttpRuntime.FirstRequestInit(HttpContext context)+9913572 System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context)+101 System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr,HttpContext context)+254
版本信息:Microsoft .NET Framework版本:4.0.30319; ASP.NET版本:4.0.30319.18408
Pat*_*ild 283
我通过重新安装NuGet包修复了这个问题,该包纠正了破坏的依赖关系.从包管理器中运行:
Update-Package Microsoft.AspNet.WebApi -reinstall
Run Code Online (Sandbox Code Playgroud)
Cat*_*tto 84
要解决无法加载文件或程序集'System.Web.Http'错误,请使用NuGet安装Web API 2.1 WebHost.
在参考文献的解决方案资源管理器中右键单击并选择管理nuget包.(如果没有安装nuget)
在左侧的manage NuGet Packages窗口中单击Online,然后在右上角搜索Web Host并安装Microsoft ASP.NET Web API 2.1 Web Host.(安装完成后,安装按钮将变为绿色检查)
之后,项目将重新加载,当它再次构建时,错误将被解决,项目将调试并运行.错误将消失,您可能是'无法找到资源.只需添加url(从localhost:52088 /到localhost:52088api/products)
你的问题很好,帮助了我.
希望这个答案有帮助!
Ali*_*tad 60
您需要添加程序集重定向:
<configuration>
....
<runtime>
<assemblyBinding>
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-4.5.0.0" newVersion="5.0.0.0" />
</dependentAssembly>
</assemblyBinding>
</runtime>
...
</configuration>
Run Code Online (Sandbox Code Playgroud)
很可能你必须为webhosting等更多的程序集执行此操作.
Sam*_*eer 17
或者您可以从NuGet Package Manager Console执行此操作
Install-Package Microsoft.AspNet.WebApi -Version 5.0.0
Run Code Online (Sandbox Code Playgroud)
然后,您将能够添加对System.Web.Http.WebHost 5.0的引用
jhi*_*den 16
当我安装Web Api 2.2帮助启动此错误.我将此添加到web.config并解决了我的问题.
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="31bf3856ad364e35" culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.2.2.0" newVersion="5.2.2.0" />
</dependentAssembly>
Run Code Online (Sandbox Code Playgroud)
解决此问题的正确解决方案是按照以下步骤操作
. 如果您的版本较旧,请更新 Visual Studio 至 15.5.4(可选)
从 web.config 中删除所有绑定重定向
将此添加到 csproj 文件中:
Run Code Online (Sandbox Code Playgroud)<PropertyGroup> <AutoGenerateBindingRedirects>true</AutoGenerateBindingRedirects> <GenerateBindingRedirectsOutputType>true</GenerateBindingRedirectsOutputType> </PropertyGroup>
建造。
在 bin 文件夹中,应该有一个(WebAppName).dll.config
文件。
它应该有重定向。将这些复制到 web.config
再次从 csproj 文件中删除上面的片段
它应该工作
归档时间: |
|
查看次数: |
349100 次 |
最近记录: |