将Silverlight应用程序连接到WCF服务时出现以下错误。我将此wcf作为自托管服务托管。
尝试向URI“http://lmr-hero/iSponsorWebSite/projectService.svc/basic”发出请求时发生错误。这可能是由于尝试在没有适当的跨域策略的情况下以跨域方式访问服务,或者是不适合SOAP服务的策略。您可能需要联系服务的所有者以发布跨域策略文件,并确保它允许发送与SOAP相关的HTTP标头。在不使用InternalsVisibleToAttribute属性的情况下,在Web服务代理中使用内部类型也可能导致此错误。有关更多详细信息,请参阅内部异常。
出现此错误的可能原因是什么?
答案 0 :(得分:6)
如果您的Silverlight应用程序未与服务位于同一域中,则需要在托管该服务的服务器上放置clientaccesspolicy.xml或crossdomain.xml文件。
有关详细信息,请参阅此链接:http://msdn.microsoft.com/en-us/library/cc197955%28VS.95%29.aspx
答案 1 :(得分:2)
右键单击.svc文件并在浏览器中点击视图。检查它是否甚至被托管并首先正确运行。那会给你一个很好的起点。
答案 2 :(得分:0)
在使用Silverlight使用Web服务时,请注意在Silverlight中正确设置WCF Web服务。与控制台模式客户端不同,在Silverlight中,您不能只在解决方案中创建WCF新项,但必须在Silverlight解决方案的.Web部分下,右键单击,添加一个名为“启用Silverlight的WCF服务的新项” ”。现在您可以转到Silverlight应用程序文件夹,添加服务引用,您将不会收到此运行时错误。这样可以避免原始海报所引用的运行时错误。