从silverlight调用.asmx服务时出现通信异常

从silverlight调用.asmx服务时出现通信异常,silverlight,crossdomain.xml,Silverlight,Crossdomain.xml,我有一个托管在IIS上的.asmx web服务。我获取了服务引用,并从silverlight应用程序调用此web服务。但我得到一个通信异常,如下所示 尝试创建时出错 对URI的请求 'http://test.bookmyshow.com/services/wsDebtorTrans.asmx'. 这可能是由于试图 以跨域方式访问服务 没有适当的跨域策略 在适当的地方,或是 不适合SOAP服务。你可以 需要联系的所有者 跨域发布服务 策略文件,以确保它允许 要发送的SOAP相关HTTP头。 此错误

我有一个托管在IIS上的.asmx web服务。我获取了服务引用,并从silverlight应用程序调用此web服务。但我得到一个通信异常,如下所示

尝试创建时出错 对URI的请求 'http://test.bookmyshow.com/services/wsDebtorTrans.asmx'. 这可能是由于试图 以跨域方式访问服务 没有适当的跨域策略 在适当的地方,或是 不适合SOAP服务。你可以 需要联系的所有者 跨域发布服务 策略文件,以确保它允许 要发送的SOAP相关HTTP头。 此错误也可能是由于使用 web服务中的内部类型 不使用 InternalsVisibleToAttribute属性。 有关详细信息,请参见内部异常 更多细节

我已将所需的策略文件clientaccesspolicy.xml和crossdomain.xml添加到我的web服务中。以下是my clientaccesspolicy.xml和crossdomain.xml的内容


我尝试从我的浏览器访问上述两个文件,xml文件在我的浏览器中正确显示。我使用了basicHttpBinding。我在网上看过很多教程并尝试过,但我仍然面临同样的问题。我有什么遗漏吗?请帮我解决这个问题。

只是想澄清一下,您只需要一个CrossDomain.xml文件或ClientAccessPolicy.xml文件。你不需要两者兼而有之。还有,你把那些文件放在哪里了?您是将其放在Services文件夹中,还是放在服务器的根目录中?例如,而不是。文件应放在应用程序的根目录中,而不是服务文件夹中。

谢谢您的回复。我已将该文件放在services文件夹中。这是正确的位置吗?。出于好奇,如果我在我的web服务中同时包含了crossdomain.xml和clientaccesspolicy.xml文件,有什么害处吗。该文件应位于应用程序的根目录中,而不是服务文件夹中。从技术上讲,两者都有没有坏处——Silverlight只需先检查一个,然后再检查另一个。但是,这意味着您必须使这两个文件保持最新,如果您的特定应用程序关心这一点,那么这可能会造成安全漏洞。