我创建了一个从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?我该如何解决这个问题?我应该在哪里放置这些文件?
由于
答案 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的沙箱性质,为了从不同的网络访问资源,您需要具有客户端访问策略,如果您正在访问不同的域,那么也需要跨域策略。