我们有一个很好的Silverlight 3应用程序,它与运行一些WCF Web服务的Web服务器通信。它在浏览器中运行时效果很好,但很快我们就会尝试在浏览器之外运行它,而不是调用我们的web服务。
我试图找出为什么会这样,但我找不到任何解释。
将调试器附加到sllauncher.exe进程时,我能够逐步执行代码,我可以看到调用(Begin)Async方法。但是使用Fiddler我可以看到服务器根本没有流量!
我还验证了端点地址是正确的,并且端点已正确配置(毕竟在浏览器中运行时它可以正常工作)。
所以我想知道问题的原因是什么以及如何调试它。有什么想法吗?
编辑: 我注意到我们的应用程序也没有在Internet Explorer中运行。但它在Firefox中运行良好!由于浏览器应用程序嵌入了Internet Explorer,因此这并不奇怪,但它可能是我们问题的线索。
那么,您知道在Firefox和Internet Explorer中托管Silverlight之间有什么区别吗?
答案 0 :(得分:1)
也许值得尝试一下你的web服务调用并看看抛出什么异常来帮助进一步调试这个问题,因为在浏览器中正常工作的web服务应该在我知道的情况下工作OOB。
答案 1 :(得分:1)
我们遇到的OOB问题都与本地机器设置有关。如果您在代理服务器后面,请暂时将其关闭。还要检查防火墙,确保它能让网络服务通过。
为了便于调试,如果您还没有这样做,请打包您的服务调用:
using System.Net;
if (NetworkInterface.GetIsNetworkAvailable()) { doSomethingAsync(); }
else { //Report the error or show status in UI }
答案 2 :(得分:0)
它适用于Firefox而不是IE,因为firefox更愿意接受临时证书。你在运行认证服务器吗?
没有流量到达提琴手的原因是因为
使用HTTPS时SL应用程序未联系Web服务器的行为是由于托管环境限制(尝试在IIS中部署)或客户端愿意接受认证加密策略。