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



我已经为一组WCF服务启用了WebInvoke。我想要访问它们的一种方式是通过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支持的自定义标头。如果没有,将以下设置添加到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>

在服务器端和客户端启用cors的更多细节。

注:-你也可以签出这个新的WCF休息行为扩展库,它确实支持CORS启用的行为

相关内容

最新更新