无法在Owin Startup.cs中加载System.Web.Cors

时间:2014-09-22 17:40:33

标签: asp.net azure oauth-2.0 cors owin

我有一个使用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。

有没有人遇到过类似的问题?如果是这样,也许你可以指出我正确的方向。

2 个答案:

答案 0 :(得分:4)

这肯定会导致您的DLL版本不同或者该环境中缺少DLL。

您需要检查的步骤很少:

  • Cors DLL应该位于您的BIN目录[在Azure上]

  • 如果有,那么在服务器上部署的DLL版本和本地两者应该是相同的。 [您可以登记入住]

  • 如果您的Azure服务器上的Cors 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软件包)。