我有一个使用ASP.NET构建的应用程序,它具有与WCF后端通信的嵌入式Silverlight对象。它是建立像这样:Silverlight因跨域错误而失败
服务器1:主机ASP.NET网站上IIS7
服务器2:主机上IIS7 WCF应用
我的机器将试图访问服务器1通过互联网登录进入网站。服务器1将通过我们在服务器2上的内部网络使用WCF Web服务对用户进行身份验证。我可以做到这一点,但是当它加载Silverlight对象时,它会崩溃,抱怨CrossDomain/ClientAccessPolicy失败。因此,为了确保我将这两个文件放在服务器1和2上的inetpub/wwwroot中的每个文件夹上。但我仍然遇到同样的错误。
当我从服务器1运行应用程序时,它可以通过它的本地网络IP连接到站点并且它可以工作,它也适用于我在自己的机器上从Visual Studio 2010运行ASP.NET应用程序,指向服务器2的Web服务参考。
我几乎在我的智慧结尾,已经有这么多的红鲱鱼,我已经尝试过,没有任何工作。我甚至不确定它是否是每台服务器上的Silverlight/WCF或IIS配置。
如果任何人都可以帮我解释一下,我将不胜感激。
谢谢, 斯图尔特。
我在自己的机器上使用fiddler来查看正在发送的数据,但据我所知它甚至不询问clientaccesspolicy,我应该在托管silverlight应用程序的服务器上运行fiddler吗? – stuartmclark
我认为你应该至少看到一个crossdomainpolicy xml或clientaccesspolicy xml的请求。尝试清除fiddler中的当前请求并重新运行它。 –
这是我感到困惑的地方,如果我在自己的机器上运行提琴手,它将如何知道服务器1和服务器2之间正在做什么请求?尽管当我尝试在服务器1上运行Fiddler时,它几乎不显示任何流量,除非我误解了如何使用fiddler? – stuartmclark