我正在尝试通过 Web API 使用 CORS 支持,并且已经安装了 RC1。我浪费了太多时间试图让 CORS 正常工作。无论如何,我启用了夜间构建但无济于事。我不断收到以下问题,无法在网上的任何地方找到解决方案。您是否需要 2013 VS 才能玩 MVC 5 或安装任何新的东西?
Could not load type 'System.Web.Http.Hosting.IHostPrincipalService' from assembly 'System.Web.Http, Version=5.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35'.
这是我的包文件
<?xml version="1.0" encoding="utf-8"?>
<packages>
<package id="Antlr" version="3.4.1.9004" targetFramework="net45" />
<package id="AutoMapper" version="3.0.0-ci1043" targetFramework="net45" />
<package id="AutoMapper" version="3.0.0" targetFramework="net45" />
<package id="EntityFramework" version="5.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.Cors" version="5.1.0-alpha1-131016" targetFramework="net45" />
<package id="Microsoft.AspNet.Mvc" version="5.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers.Core" version="1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Providers.LocalDB" version="1.1" targetFramework="net45" />
<package id="Microsoft.AspNet.Razor" version="3.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.AspNet.Web.Optimization" version="1.0.0" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi" version="5.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Client" version="5.1.0-alpha1-131016" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Core" version="5.1.0-alpha1-131016" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.Cors" version="5.1.0-alpha1-131016" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.OData" version="5.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebApi.WebHost" version="5.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.AspNet.WebPages" version="3.0.0-rc1" targetFramework="net45" />
<package id="Microsoft.Data.Edm" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.Data.OData" version="5.6.0" targetFramework="net45" />
<package id="Microsoft.Web.Infrastructure" version="1.0.0.0" targetFramework="net45" />
<package id="Newtonsoft.Json" version="5.0.6" targetFramework="net45" />
<package id="NodaTime" version="1.1.1" targetFramework="net45" />
<package id="System.Spatial" version="5.6.0" targetFramework="net45" />
<package id="WebGrease" version="1.1.0" targetFramework="net45" />
<package id="WebGrease" version="1.5.2" targetFramework="net45" />
</packages>
最佳答案
除了使用 ASP.NET CORS Nuget 包之外,还有其他方法可以在服务器端启用 CORS。您可以手动将 CORS header 添加到响应中(例如,通过编写自定义 Web API MessageHandler ,或使用其他代码机制将 header 添加到响应中),或者您可以使用 web.config 添加 header 。 :
使用 CORS Nuget 包可能是推荐的方法(一旦 5.1+ 版本实际发布),但这不是唯一的方法。
我已经使用 MVC4 和 VS2012-era Web API 版本在 VS2012 中使用这些替代方法。
关于c# - MVC Web API 5 升级以支持 CORS,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/19426362/