我正在使用WEB API 2制作Web应用程序。 以前,我的项目运行良好,没有任何错误。错误只是在我将我的nuget包更新到最新版本之后才出现。
目前,当我启动我的Web应用程序时,它会抛出一个错误:
这是抛出异常的命令(在Startup.cs中)
GlobalConfiguration.Configure(ApiRouteConfig.Register);
我一次又一次地尝试重新安装WEB API 5.2.3但没有运气。错误不断发生。
这是我的packages.config
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Autofac" version="4.4.0" targetFramework="net461" />
<package id="Autofac.Mvc5" version="4.0.1" targetFramework="net461" />
<package id="Autofac.SignalR2" version="4.0.0" targetFramework="net46" />
<package id="Autofac.WebApi2" version="4.0.1" targetFramework="net461" />
<package id="EntityFramework" version="6.1.3" targetFramework="net46" />
<package id="JWT" version="1.3.4" targetFramework="net461" />
<package id="log4net" version="2.0.8" targetFramework="net461" />
<package id="Microsoft.AspNet.Cors" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Mvc" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.Razor" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.SignalR.Core" version="2.2.1" targetFramework="net46" />
<package id="Microsoft.AspNet.SignalR.SystemWeb" version="2.2.1" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi" version="5.2.3" targetFramework="net461" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.2.3" targetFramework="net461" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.2.3" targetFramework="net461" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.2.3" targetFramework="net46" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.2.3" targetFramework="net461" />
<package id="Microsoft.AspNet.WebPages" version="3.2.3" targetFramework="net46" />
<package id="Microsoft.CodeDom.Providers.DotNetCompilerPlatform" version="1.0.3" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Logging" version="1.1.3" targetFramework="net461" />
<package id="Microsoft.IdentityModel.Tokens" version="5.1.3" targetFramework="net461" />
<package id="Microsoft.Net.Compilers" version="2.0.1" targetFramework="net461" developmentDependency="true" />
<package id="Microsoft.Owin" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Cors" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Host.SystemWeb" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Security" version="3.0.1" targetFramework="net46" />
<package id="Microsoft.Owin.Security.Jwt" version="3.0.1" targetFramework="net461" />
<package id="Microsoft.Owin.Security.OAuth" version="3.0.1" targetFramework="net461" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net46" />
<package id="Modernizr" version="2.8.3" targetFramework="net46" />
<package id="Newtonsoft.Json" version="10.0.2" targetFramework="net461" />
<package id="Nustache" version="1.16.0.4" targetFramework="net461" />
<package id="Owin" version="1.0" targetFramework="net46" />
<package id="ToolKit-DataAnnotations" version="1.0.4" targetFramework="net461" />
</packages>
我在互联网上搜索了很多解决方案,但对我没用。我不知道我的项目发生了什么。它花了我一天没有任何东西。
我的开发环境:
有人可以帮我吗?
谢谢。
答案 0 :(得分:0)
发生这种情况是因为某些程序集在升级它且版本4.0.0.0不再存在时仍引用System.Net.Http
版本4.0.0.0。
你可以尝试的事情:
在项目文件夹中搜索System.Net.Http.dll
。它通常在packages
。 Right click on dll > Properties > Goto Details tab > Find Product Version
那里。
打开App.config,添加以下代码。 assemblyBinding
应归入configuration > runtime
。将current_version
替换为您在上一步中找到的版本。
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Net.Http"
publicKeyToken="b03f5f7f11d50a3a"
culture="neutral" />
<bindingRedirect oldVersion="4.0.0.0"
newVersion="current_version"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>
这会将对4.0.0.0
版本的任何号码重定向到current_version
的{{1}} dll。