【问题标题】:Silverlight looking at wrong url for clientaccesspolicy fileSilverlight 查看客户端访问策略文件的错误 url
【发布时间】:2010-12-08 10:33:10
【问题描述】:
我有一个 Silverlight 应用程序通过 https 连接到网络服务。
网络服务托管在 mydomain.com(不是 localhost)上。
当我运行 silverlight 时,它会在 mydomain.com 上对 web 服务进行 https 调用,但也会尝试访问“http://localhost/clientaccesspolicy.xml”,但显然失败了。为什么我的 SL 应用程序在 localhost 中寻找 cal.xml?为什么不在 mydomain.com 中查找 cal.xml?
欣赏你的想法。
谢谢!
【问题讨论】:
-
在 IIS 中托管的 SL3 应用程序的地址是什么(或者您是否在 vs 中运行它),以及托管的 Web 服务的地址是什么(假设您发布了它的 mydomain.com?)
-
标签:
wcf
configuration
silverlight-3.0
【解决方案1】:
“在允许连接到网络资源之前,Silverlight 运行时将尝试从托管网络资源的域下载安全策略文件。有两种不同的方法用于下载安全策略,具体取决于连接请求是否来自 WebClient 或 HTTP 类,或者连接请求是否来自套接字。
如果连接请求是从 WebClient 或 HTTP 类到跨域站点的,Silverlight 运行时会尝试使用 HTTP 协议下载安全策略文件。 Silverlight 运行时首先尝试使用 HTTP 协议在请求的目标域的根目录下下载名为“clientaccesspolicy.xml”的 Silverlight 策略文件。
如果未找到“clientaccesspolicy.xml”(Web 请求返回 404 状态代码)、返回意外的 mime 类型、不是有效的 XML 或具有无效的根节点,则 Silverlight 运行时将发出请求用于 Flash 策略文件,其名称为“crossdomain.xml”,位于请求的目标域的根目录,使用 HTTP 协议。”
http://msdn.microsoft.com/en-us/library/cc645032%28VS.95%29.aspx
【解决方案2】:
地址在您的 SL 应用程序中是什么样的?
地址是否来自 ServiceReference.ClientConfig 文件?如果是这样,请确保它有一个 mydomain.com 而不是那里的 localhost 地址。