我正在将WPF应用程序迁移到Silverlight。我的WPF应用程序使用BackgroundWorker访问Web服务。如果访问Web服务时出现任何错误,我会在回调中收到大量错误消息,例如
There was no endpoint listening at http://localhost:8080/services/registration
that could accept the message. This is often caused by an incorrect address or
SOAP action. See InnerException, if present, for more details.
在我的Silverlight应用程序中,我异步访问同一个Web服务,现在我的错误消息不是很有用,例如:
The remote server returned an error: NotFound.
Web服务没有改变 - 我可以看到来自Fiddler服务器的故障。所以问题是如何在Silverlight客户端上获得更详细的错误消息。
我在Silverlight应用程序中的回调看起来像这样(我正在从e.Error.Message访问错误消息):
private void AuthenticateUserCallback(object sender, AuthenticateUserCompletedEventArgs e)
{
if (e.Error != null)
{
this.StatusMessage = e.Error.Message;
}
...
}
答案 0 :(得分:0)
这是浏览器堆栈的限制,因为SL无法访问完整的异常消息。查看MSDN文章here 方法是将异常包装成有意义的错误(这意味着客户端将始终获得HTTP OK 200)并在客户端执行自定义异常处理。