Asp.net 浏览器用完时从Silverlight 3调用Web服务
我们有一个很好的Silverlight 3应用程序,它与运行一些WCF web服务的web服务器进行通信。当它在浏览器中运行时,它工作得很好,但很快我们尝试在浏览器之外运行它,它不会调用我们的Web服务 我试图找出这一切发生的原因,但找不到任何解释 在将调试器附加到sllauncher.exe进程时,我能够单步执行代码,并且可以看到(Begin)Async方法被调用。但使用Fiddler,我可以看到服务器根本没有流量 我还验证了端点地址是正确的,并且端点配置正确(毕竟在浏览器中运行时它可以工作) 所以我想知道问题的原因是什么,以及如何调试它。有什么想法吗 编辑: 我注意到我们的应用程序也不能在Internet Explorer中运行。但它在Firefox中运行良好!这并不奇怪,因为浏览器外应用程序嵌入了internet explorer,但它可能是我们问题的线索Asp.net 浏览器用完时从Silverlight 3调用Web服务,asp.net,wcf,silverlight,silverlight-3.0,Asp.net,Wcf,Silverlight,Silverlight 3.0,我们有一个很好的Silverlight 3应用程序,它与运行一些WCF web服务的web服务器进行通信。当它在浏览器中运行时,它工作得很好,但很快我们尝试在浏览器之外运行它,它不会调用我们的Web服务 我试图找出这一切发生的原因,但找不到任何解释 在将调试器附加到sllauncher.exe进程时,我能够单步执行代码,并且可以看到(Begin)Async方法被调用。但使用Fiddler,我可以看到服务器根本没有流量 我还验证了端点地址是正确的,并且端点配置正确(毕竟在浏览器中运行时它可以工作)
所以,您知道在Firefox中托管silverlight与在Internet Explorer中托管silverlight有什么区别吗?也许值得尝试一下web服务调用,看看抛出了什么异常来帮助进一步调试此问题,因为就我所知,在浏览器中正常工作的web服务应该可以在OOB中工作。我们遇到的问题OOB都与本地机器设置有关。如果您支持代理,请暂时将其关闭。还要检查防火墙,确保它能让web服务流量通过 为了便于调试,如果您还没有这样做,请按如下方式包装您的服务调用:
using System.Net;
if (NetworkInterface.GetIsNetworkAvailable()) { doSomethingAsync(); }
else { //Report the error or show status in UI }
它适用于Firefox而不是IE,因为Firefox更愿意接受临时证书。您正在运行证书服务器吗 没有流量击中fiddler的原因是
无论哪种方式,SL应用程序在使用HTTPS时不联系web服务器的行为都是由于托管环境限制(尝试在IIS中部署)或客户端愿意接受认证加密策略。优点,但我认为这两者都不是问题的原因。我曾尝试在本地和远程服务器上运行webservices,但行为是相同的。我还尝试调用GetIsNetworkAvailable,但它返回true。啊……有一些关于活动X控件等的IE设置可能会导致SL OOB应用程序无法运行。如果可以,请将所有IE设置设为默认值,然后尝试运行它。