从Silverlight Crossdomain错误调用的WCF服务库

时间:2011-07-28 13:51:06

标签: silverlight wcf

我创建了一个从Silverlight应用程序调用的WCF服务库。

.svc文件(GVFileManagementService.svc)托管在同时托管xap的Web项目上。

现在,GVFileManagementService.svc只包含对dll的引用。

在当地,一切正常。但是当我在服务器上部署解决方案时,xap不起作用,我在Fiddler中注意到应用程序正在请求crossdomain.xml和clientaccesspolicy.xml文件。

https为:http://localhost:1186/clientaccesspolicy.xml

http://localhost:1186/crossdomain.xml

为什么它表示localhost URL?我该如何解决这个问题?我应该在哪里放置这些文件?

由于

3 个答案:

答案 0 :(得分:1)

客户端访问和跨域策略文件需要位于根网站目录中。 Fiddler显示本地主机地址,因为您在特定端口上运行本地Web服务器。

您可以查看这篇文章。 http://msdn.microsoft.com/en-us/library/cc197955%28v=vs.95%29.aspx

答案 1 :(得分:1)

您的问题可能是正在构建XAP文件时引用了开发环境中使用的本地主机服务。这就是放在XAP文件中的原因以及当您尝试使用它时Silverlight客户端寻找localhost的原因。您需要创建相对绑定,以便当silverlight客户端开始请求服务时,它将替换已部署计算机上的服务名称。

此链接Using relative URLs to access WCF services in Silverlight可能有助于解释正在发生的事情以及如何执行此操作。

答案 2 :(得分:0)

由于Silverlight的沙箱性质,为了从不同的网络访问资源,您需要具有客户端访问策略,如果您正在访问不同的域,那么也需要跨域策略。