コードを使用して REST WCF サービスを構成していますが、何かが正しくありません。以下のコードでエラーハンドラを作成します。
サービス (自己ホスト型) を実行すると、Unauthorized ステータス コードで WebFaultException をスローすると、ProvideFault コードがヒットします。問題は、クライアント (ブラウザー) が「サーバーで要求の処理中にエラーが発生しました。詳細については、サーバー ログを参照してください」というメッセージが表示されることです。 私が見逃しているものはありますか?また、私は自己ホストしているため、「サーバーログ」がないため、基本的に完全に暗闇の中にいます。セルフホステッドサービスで「サーバーログ」をキャプチャする方法はありますか?
注: WebFaultException は、3.5 を使用しているため作成したものです。
public class WebErrorHandler : IErrorHandler
{
private IErrorHandler m_chainedHandler;
public WebErrorHandler(IErrorHandler chainedHandler)
{
m_chainedHandler = chainedHandler;
}
#region IErrorHandler Members
public bool HandleError(Exception error)
{
return m_chainedHandler.HandleError(error);
}
public void ProvideFault(Exception error, System.ServiceModel.Channels.MessageVersion version, ref System.ServiceModel.Channels.Message fault)
{
WebFaultException ex = error as WebFaultException;
if (ex != null)
{
fault = Message.CreateMessage(version, "");
HttpResponseMessageProperty p = new HttpResponseMessageProperty();
p.StatusCode = ex.Status;
p.StatusDescription = "Another test";
fault.Properties.Add(HttpResponseMessageProperty.Name, p);
}
else
{
m_chainedHandler.ProvideFault(error, version, ref fault);
}
}
#endregion
}