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.xml
和crossdomain.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!
答案 0 :(得分:0)
clientaccesspolicy.xml是否放在域的根目录中?