c# - 使用 CORS 通过 IIS 访问 WCF REST 服务在本地工作,但不能从连接的设备工作

标签 c# wcf iis cors

我有一组已启用 WebInvoke 的 WCF 服务。 我想要访问它们的一种方式是通过 IIS 托管的简单网页上的 javascript。 为了让它发挥作用,我必须启用 CORS,我使用本指南对其进行了管理: http://blogs.microsoft.co.il/idof/2011/07/02/cross-origin-resource-sharing-cors-and-wcf/

但是,当我从另一台计算机通过本地网络访问网页时,仍然存在问题。

举个例子:

网络 Comp1 (10.0.0.1) 和 Comp2 (10.0.0.2) 上的两台计算机。 IIS 和 WCF 服务都由 Comp1 托管。

使用 Firefox 我可以使用以下方法从 Comp1 访问网页: http://10.0.0.1:12345

只要根据上面的链接启用了 CORS,它就可以工作。如果我禁用 CORS,我会收到一条错误消息,指出 CORS 已禁用。

如果我使用 Comp2 中的 Firefox 访问 10.0.0.1:12345,无论我是否在 WCF 服务器中启用了 CORS 代码,我都会收到相同的 CORS 错误消息。如果禁用 CORS,我在此处收到的错误消息与我在 Comp1 上收到的错误消息相同。

有人对可能出错的地方有什么建议吗?

一切(js 和 html 除外)都在 C# 中使用 Visual Studio 2013。 请告诉我是否应该包含一些代码以获得更好的帮助。

最佳答案

确保您在 IIS 中为 CORS 支持启用了自定义 header 。如果没有将以下设置添加到 web.config 的根目录

<?xml version="1.0" encoding="utf-8"?>
<configuration>
 <system.webServer>
   <httpProtocol>
     <customHeaders>
       <add name="Access-Control-Allow-Origin" value="*" />
     </customHeaders>
   </httpProtocol>
 </system.webServer>
</configuration>

有关在 server side 上启用 cors 的更多详细信息和 client side .

附言- 您也可以结帐 this支持启用 CORS 行为的新 WCF 休息行为扩展库。

关于c# - 使用 CORS 通过 IIS 访问 WCF REST 服务在本地工作,但不能从连接的设备工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33156503/

相关文章:

asp.net - 使用 ASP.NET 重定向到非 www-url 域?

c# - 修改machine.config后VS崩溃,组件也多

c# - 带有 Entity Framework 的 MySql 连接器 : Comparing Char(36) GUIDs in a LINQ Where clause

asp.net - Jquery Ajax,无法在 Internet Explorer 中工作

IIS URL 将子文件夹重写为另一个文件夹名称

iis - 使用 IIS 的 Dropbox 内的本地站点

c# - “Expression denotes a ` variable ', where a ` method group' was expected “这是什么意思?

C# 事件和类方法

ios - HTTP 不支持的媒体类型问题

c# - 在 IIS 上尝试我的 WCF 数据服务时得到 "401 - Unauthorized"