Web服务错误没有冒泡

时间:2011-04-16 07:49:42

标签: c# web-services windows-phone-7

我使用ASP.net / C#创建了一个 Web服务。我在 Windows Phone 7 项目中添加了对 .asmx 文件的服务引用(再次使用C#)。在正常情况下,这很有效。

我需要能够处理Web服务关闭或以其他方式抛出错误的情况。当服务不可用时,我在Reference.cs文件中收到错误(当我添加服务引用时,这似乎是自动生成的内容),当它尝试获取_result值时。这个内在的例外是

"The remote server returned an error: NotFound.". 

收到错误后,应用程序停止执行。我需要能够捕获此错误,以便应用程序不会停止。

这是我调用以执行我的Web服务的代码。

HighScoresWSSoapClient client = new HighScoresWSSoapClient();
  client.LoadUserByANIDCompleted += this.client_LoadUserByANIDCompleted;
  client.LoadUserByANIDAsync(this.anid);

我在try/catch事件中添加了client_LoadUserByANIDCompleted块。

在调试器中,当我错误时,应用程序的执行停止。如果我按下播放,它会继续进入try/catch块,它会正确地进入我可以处理它的捕获部分......

但是因为它最初停在_result行,所以它通常不会到达那一点。我不知道为什么在没有再次播放的情况下它不会冒泡到我的try/catch并且不确定如何在现实世界中进行这项工作。

我希望这是足够的信息继续下去并且有意义。谢谢你的帮助!

2 个答案:

答案 0 :(得分:0)

您应该做的第一件事是启用WCF日志记录并使用服务跟踪查看器查看其输出。有关详细信息,请参阅this previous answer

答案 1 :(得分:0)

看起来这只是调试器所做的一件奇怪的事情,并且没有办法绕过它。如果您在调试器之外运行此代码,它会将错误冒充到try / catch块,您可以处理它。在调试器内部,您必须按播放才能完成它,但您也可以处理它。