启动WebApi应用程序时出现此异常“无法加载文件或程序集System.Web.Http,Version = 4.0.0.0”,我在AppStart方法中注册。
protected void Application_Start()
{
RegisterInjector();
GlobalConfiguration.Configure(WebApiConfig.Register);
FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
RouteConfig.RegisterRoutes(RouteTable.Routes);
BundleConfig.RegisterBundles(BundleTable.Bundles);
}
private void RegisterInjector()
{
var container = new Container();
container.Verify();
GlobalConfiguration.Configuration.DependencyResolver =
new SimpleInjectorWebApiDependencyResolver(container);
}
答案 0 :(得分:1)
用于Web API的Simple Injector集成包引用System.Web.Http程序集所需的最低版本,并且升级到较新版本的可接受方法是在配置文件中配置强制的bindingRedirect
。 NET使用较新的System.Web.Http程序集。通过Nuget安装软件包时,会自动为您管理这些绑定重定向(或至少 - 大部分时间),在这种情况下,您不必手动管理这些重定向。
在其他情况下,您必须手动将绑定直接添加到应用程序的配置文件中:
<configuration>
<runtime>
<assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
<dependentAssembly>
<assemblyIdentity name="System.Web.Http" publicKeyToken="b03f5f7f11d50a3a"
culture="neutral" />
<bindingRedirect oldVersion="0.0.0.0-5.0.0.0" newVersion="5.0.0.0"/>
</dependentAssembly>
</assemblyBinding>
</runtime>
</configuration>