0

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;
    }

    ...
}
4

1 に答える 1

0

これは、SL が完全な例外メッセージにアクセスできないため、ブラウザ スタックの制限です。ここで MSDN の記事を参照してください 。アプローチは、例外を意味のあるエラーにラップし (つまり、クライアントは常に HTTP OK 200 を受け取ることを意味します)、クライアント側でカスタム例外処理を実行します。

于 2010-12-20T07:38:12.457 に答える