我正在开发 Silverlight 5 中的应用程序。我们使用 WCF 进行所有网络通信,而且它大部分都运行良好。但是,我们有几个虚拟机用于测试应用程序在哪里失败、尝试重新启动、失败等等,在无限循环中。我添加了很多跟踪代码和很多尝试捕获,我一直将它隔离到失败的代码行,但我仍然无法从失败中获得实际的错误消息,只是迷恋;撞车;崩溃。最初,它在这行 WCF 代码上失败了:
return await Task<List<Instance>.Factory.FromAsync(Channel.BeginGetInstance, Channel.EndGetInstance, null);
如果它与 async/await 的使用有关,我会回到带有回调的旧代码。我仍然遇到同样的失败,但现在我可以看到对 WCF 函数的调用成功完成,但回调第一行的日志语句从未发生过,所以它似乎在回调之前或之外死亡。
另一个注意事项,我们在 Application_UnhandledException 中的代码似乎没有触发,但 Application_Exit 中的代码确实运行,我将其视为日志文件中的最后一行。
我尝试设置远程调试,但在应用程序崩溃和回收之前我无法连接到应用程序,所以这也无济于事。
我还使用 TCPView 来观察网络流量,看起来通信是双向进行的。
如果有人有任何其他尝试的建议,我将不胜感激。