问题描述
|
我正在使用WCF服务(不是RIA)和silverlight,出现以下错误:
尝试制作时发生错误
对URI的请求
\'http:// localhost:8732 / \'。这可能
由于尝试访问一个
以跨域方式提供服务,而无需
适当的跨域政策,
或不适合的政策
SOAP服务。您可能需要联系
服务的所有者发布一个
跨域策略文件并确保
它允许与SOAP相关的HTTP标头
被发送。也可能导致此错误
通过使用网络中的内部类型
服务代理而不使用
InternalsVisibletoAttribute属性。
请参阅内部例外
更多细节。
我试图将以下内容添加到我的clientaccesspolicy.xml文件中,并将crossdomain.xml添加到我的Web项目的根目录中。他们看起来像这样...
<access-policy>
<cross-domain-access>
<policy>
<allow-from http-request-headers=\"*\">
<domain uri=\"http://*\"/>
<domain uri=\"https://*\"/>
</allow-from>
<grant-to>
<resource include-subpaths=\"true\" path=\"/\"/>
</grant-to>
</policy>
</cross-domain-access>
</access-policy>
crossdomain.xml:
<?xml version=\"1.0\"?>
<!DOCTYPE cross-domain-policy SYstem \"http://www.macromedia.com/xml/dtds/cross-domain-policy.dtd\">
<cross-domain-policy>
<allow-http-request-headers-from domain=\"*\" headers=\"*\"/>
</cross-domain-policy>
任何想法我为什么要得到这个?
提前致谢。
解决方法
如果无法安装提琴手,可以下载并使用TcpTrace吗? http://www.pocketsoap.com/tcptrace/
,需要将clientaccesspolicy.xml放在承载WCF服务的网站的根目录中,而不是在Web项目的根目录中。
,当我将WCF服务移到与Silverlight Web应用程序项目分离的Web应用程序中时,我就遇到了SOAP WCF服务的问题。即使将我的clientaccesspolicy.xml放在WCF Web应用程序的根目录中,我仍然遇到此错误。对我而言,最快的解决方案是将WCF服务从SOAP更改为REST,然后,Silverlight最终识别出clientaccesspolicy.xml,并且请求再次开始工作。