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