Silverlight到WCF跨域异常,但正在成功读取clientaccesspolicy.xml
Silverlight到WCF跨域异常,但正在成功读取clientaccesspolicy.xml,silverlight,wcf,cross-domain,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>
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>
<?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)。但是,在请求这些文件后,客户端尝试调用服务,并立即收到跨域异常
我还尝试让系统管理员将WCF服务URL添加到Silverlight客户端所在的框中Internet Explorer的“允许的站点”列表中(根据最后一段的最后一句),但也没有成功
停 clientaccesspolicy.xml是否放置在域的根目录中?clientaccesspolicy.xml是否放置在域的根目录中?这两个文件都位于作为虚拟应用程序承载服务的子目录中(C:\inetpub\wwwroot\MyServices映射到IIS中的/MyServices,crossdomain.xml位于C:\inetpub\wwwroot\MyServices\crossdomain.xml)。是否可以尝试将它们移动到域的根目录下?根据MSDN,应该是“在承载服务的域的根目录下”的位置,以配置服务以允许跨域访问。”这两个.xml文件都位于C:\inetpub\wwwroot\和C:\inetpub\wwwroot\MyServices\中。这两个文件都位于作为虚拟应用程序承载服务的子目录中(C:\inetpub\wwwroot\MyServices映射到IIS中的/MyServices,crossdomain.xml位于C:\inetpub\wwwroot\MyServices\crossdomain.xml)。是否可以尝试将它们移动到域的根目录下?根据MSDN,应该是“在承载服务的域的根目录下”的位置,以配置服务以允许跨域访问两个.xml文件都位于C:\inetpub\wwwroot\和C:\inetpub\wwwroot\MyServices\中。您是否找到了解决方案?我面临的是同等的解决方案?您是否找到了同等的解决方案?我面临的是同等的解决方案