我有一个 Silverlight 5 应用程序,它通过 HTTPS 向 IIS 6 托管的单独域(服务器)上的 WCF 数据服务(例如 mydomain.com/service.svc)发出请求。
silverlight 应用程序收到 SecurityException,我认为这与找不到正确的 clientaccesspolicy.xml 文件有关。我在 mydomain.com 的 wwwroot 文件夹中定义了一个 clientaccesspolicy.xml 文件,如下所示
<?xml version="1.0" encoding="utf-8"?>
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers="*">
<domain uri="*"/>
</allow-from>
<grant-to>
<resource path="/" include-subpaths="true"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
奇怪的是,在查看 Fiddler 流量时,从来没有尝试请求 mydomain.com/clientaccesspolicy.xml。
另一件事是 clientaccesspolicy.xml 仅通过 https 提供服务(该服务器上的 IIS 设置仅允许 ssl/tls 连接),所以这可能是问题的一部分吗?
最佳答案
您可以尝试在您的allow-from中显式添加https://:
<allow-from http-request-headers="*">
<domain uri="http://*"/>
<domain uri="https://*" />
</allow-from>
我假设当您尝试直接点击该文件时您会看到它(IIS 实际上正在为它提供服务)。
关于Silverlight 5 客户端访问策略.xml,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13122875/