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

时间:2011-07-29 11:37:06

标签: silverlight wcf cross-domain

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>

crossdomain.xml

<?xml version="1.0"?>
<!DOCTYPE cross-domain-policy>
<cross-domain-policy>
  <allow-http-request-headers-from domain="*" headers="*" secure="true" />
</cross-domain-policy>

这里没什么好看的,这是数百万WCF服务用来允许Silverlight客户端访问它们的标准设置。不幸的是,这个设置在我部署到的实时环境中不起作用。用于测试部署的预生产环境设置与实时相同(或者系统管理员声明),一切都在那里完美运行,这就是为什么我很困惑。

我让其中一个系统管理员使用HTTPDebuggerPro跟踪Silverlight客户端的请求,并显示客户端正在检索clientaccesspolicy.xmlcrossdomain.xml而没有问题(HTTP状态200)。但是,在请求这些文件后,客户端会尝试调用该服务并立即收到CrossDomainException

我还尝试让sysadmins将WCF服务URL添加到Silverlight客户端所在的框上的Internet Explorer的“允许的站点”列表中(根据http://blogs.msdn.com/b/fiddler/archive/2010/11/22/fiddler-and-silverlight-cross-zone-cross-domain-requests.aspx的最后一段的最后一句)但这也不起作用。

HALP!

1 个答案:

答案 0 :(得分:0)

clientaccesspolicy.xml是否放在域的根目录中?