我在Azure上创建了一个典型的Silverlight 5应用程序,其中一个Web项目托管了托管Silverlight XAP文件的站点,另一个Web项目托管了一组WCF数据服务。
这两个站点一起运行在一个Azure角色中但在不同的端口上运行。端口80托管WCF数据服务,端口8081托管实际的Silverlight应用程序。
我遇到此配置的跨域问题。在通过Fiddler观看时,似乎当我的Silverlight应用程序调用服务时,正如预期的那样,它正在寻找来自WCF数据服务站点的clientaccesspolicy.xml和crossdomain.xml文件,以允许跨域访问。但是,Silverlight应用程序将请求发送到http://127.0.0.1,而不是托管WCF数据服务的域的正确URI。
有人可以向我解释为什么应用程序试图转到127.0.0.1而不是正确的URI吗?
由于
答案 0 :(得分:1)
您的Silverlight应用程序有一个名为“ServiceReferences.ClientConfig”的文件。添加服务引用时已创建该文件。并且因为您添加了127.0.0.1中的服务引用,所以您的文件配置为服务端点位于127.0.0.1。
您需要做的是在部署之前手动更改ServiceReferences.ClientConfig文件,以修复服务端点地址(并将其设置为您正在使用的域)。
或者您可以使用mine approach来解决此类问题。