我有一个使用Web API 2并在我的本地Azure模拟器中运行的.Net 4.5.1应用程序。我安装了一些OWIN组件,在Configuration(IAppBuilder应用程序)函数中的Startup.cs文件中,我有以下代码块,最后一行导致异常:
HttpConfiguration httpConfiguration = new HttpConfiguration();
WebApiConfig.Register(httpConfiguration);
app.UseWebApi(httpConfiguration);
app.UseCors(Microsoft.Owin.Cors.CorsOptions.AllowAll);
此行导致异常"无法加载文件或程序集&System; Web.Cors,Version = 5.0.0.0,Culture = neutral,PublicKeyToken = 31bf3856ad364e35'或其中一个依赖项。"
我无法弄清楚为什么NuGet没有'如果它是依赖项,请安装它。另外,我无法找到已安装的相应dll来自己添加引用,也无法安装正确的NuGet包以提供所述dll。
有没有人遇到过类似的问题?如果是这样,也许你可以指出我正确的方向。
答案 0 :(得分:4)
这肯定会导致您的DLL版本不同或者该环境中缺少DLL。
您需要检查的步骤很少:
Cors DLL应该位于您的BIN目录[在Azure上]
如果有,那么在服务器上部署的DLL版本和本地两者应该是相同的。 [您可以登记入住]
<dependentAssembly> <assemblyIdentity name="System.Web.Cors" publicKeyToken="31bf3856ad364e35" /> <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.0.0.1" /> </dependentAssembly>
您的新版本可能是您的DLL版本,可在BIN目录中使用。
答案 1 :(得分:2)
您是否尝试过nuget的Microsoft.Asp.Net.WebApi.Cors? https://www.nuget.org/packages/Microsoft.AspNet.WebApi.Cors/5.2.2 它不是Cors软件包的依赖项,因为它适用于webapi,唯一的microsoft.owin.cors依赖项是基于microsoft.asp.net.cors(除了owin软件包)。