WCF Silverlight 跨域问题

Posted

技术标签:

【中文标题】WCF Silverlight 跨域问题【英文标题】:WCF Silverlight crossdomain problem 【发布时间】:2011-05-03 10:47:54 【问题描述】:

我有几个 WCF 服务。 当我在服务器上检查它们时(例如:ServiceTest.svc?wsdl),我看到一个包含有关 wcf 服务信息的 xml 文件。所以服务工作正常。

我在不同的服务器上有一个 Silverlight 应用程序。 我得到了“著名的”跨域错误。 当我将 clientaccesspolicy.xml 放在带有 WCF 服务的目录中时,问题仍然存在。

是否有可能使用共享主机,安全性不够高/低?

谢谢,

菲利普

【问题讨论】:

【参考方案1】:

XML 文件必须放在域的根目录中。通常您必须将它们放入 inetpub/wwwroot 文件夹中,而不是放入带有 WCF 服务的文件夹中。

根据您的提供商如何实现共享主机,恐怕您必须要求他们支持跨域访问并将 XML 文件放入根目录。

我不确定,但我认为它也可以注册您自己的域,该域指向您要用作根目录的文件夹,并将 XML 文件放在那里。然后,客户端当然必须将服务器 URL 与您的注册域一起使用。

【讨论】:

【参考方案2】:

解决此类问题的最佳工具之一是Fiddler(或其他一些网络调试代理)。查看网络调用,您可以看到浏览器正在查找 clientaccesspolicy.xml 文件的地址,然后确保将文件放在该位置。如果您没有看到此调用,或者您看到它并且文件已经存在,您可以继续处理其他问题(网络服务或调用代码中的错误)。

【讨论】:

以上是关于WCF Silverlight 跨域问题的主要内容,如果未能解决你的问题,请参考以下文章

Silverlight 到 WCF 跨域异常,但正在成功读取 clientaccesspolicy.xml

WCF 跨域策略安全错误

如何针对已部署的服务 [跨域问题] 调试 Silverlight 应用程序?

WCF跨域策略安全性错误

关于vue项目请求WCF服务跨域的问题(后台设置)

AJAX 跨域图像发布到 WCF 服务