Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/295.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/14.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/powerbi/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# MVC Web API 5升级以支持CORS_C#_Asp.net Mvc_Asp.net Web Api_Asp.net Mvc 5 - Fatal编程技术网

C# MVC Web API 5升级以支持CORS

C# MVC Web API 5升级以支持CORS,c#,asp.net-mvc,asp.net-web-api,asp.net-mvc-5,C#,Asp.net Mvc,Asp.net Web Api,Asp.net Mvc 5,我正在尝试将CORS支持与Web API结合使用,并安装了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, Cultur

我正在尝试将CORS支持与Web API结合使用,并安装了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>

使用MVC 5/Web API 2不需要VS 2013。您可以将其用于VS 2012

尝试使用RTM版本,并在升级到MVC5和WebAPI 2时检查以下内容

要在VS 2012中使用MVC 5和Web API 2,您需要安装


希望这有帮助。

除了使用ASP.NET CORS Nuget包之外,还有其他方法可以在服务器端启用CORS。您可以手动将CORS头添加到响应中(例如,通过编写自定义代码或使用其他一些代码机制将头添加到响应中),也可以使用以下方法添加头:

使用CORS Nuget包可能是推荐的方法(一旦5.1+版本实际发布),但这不是唯一的方法


我已经使用MVC4和VS2012时代的Web API版本在VS2012中使用了这些替代方法。

您只需添加适当的标题即可在单个控制器上启用CORS:

// allow the browser to send cross-origin requests
Response.AppendHeader("Access-Control-Allow-Origin", "http://foo.com");

// optional: allow the browser to send cookies with the request
Response.AppendHeader("Access-Control-Allow-Credentials", "true");

不需要MVC 5或新的软件包。

您在这里看过吗:?是的,这就是我最初走上这条道路的原因。您无法安装该特定软件包,因为它在使用basic auth发出选项飞行前请求时失败。它本应该在夜间构建中修复,但是当升级到夜间构建时,其他一切似乎都会中断,因此我的帖子。无论如何,谢谢。我在Visual Studio 2013中看到了同样的问题,但是在尝试使用System.Web.Mvc项目时。在我的例子中,它警告“强名称验证失败”