WCF客户端返回错误“远程服务器返回错误:NotFound。”

时间:2010-12-20 03:41:47

标签: wcf fault

我正在将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;
    }

    ...
}

1 个答案:

答案 0 :(得分:0)

这是浏览器堆栈的限制,因为SL无法访问完整的异常消息。查看MSDN文章here 方法是将异常包装成有意义的错误(这意味着客户端将始终获得HTTP OK 200)并在客户端执行自定义异常处理。