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