ExceptionFilterAttributeを使用してWEBAPIフィルタ

記事

パブリック クラスApiExceptionFilterAttribute:ExceptionFilterAttribute 
    { 
        公共 オーバーライド ボイドonExceptionを(HttpActionExecutedContext actionExcutedContext)
        { 
            HttpRequestMessageリクエスト = actionExcutedContext.Request。
            文字列コントローラ名= actionExcutedContext.ActionContext.ControllerContext.ControllerDescriptor.ControllerName。
            文字列 actionNameの= actionExcutedContext.ActionContext.ActionDescriptor.ActionName。
            文字列の内容= request.Content.ReadAsStringAsync()結果。
            ストリングexceptionMessage = actionExcutedContext.Exception.Message。
            文字列 exceptionTrace = actionExcutedContext.Exception.StackTrace。
            文字列引数= JsonConvert.SerializeObject(actionExcutedContext.ActionContext.ActionArguments)。
            文字列の URL = request.RequestUri.AbsoluteUri。
            StringBuilderのSB = 新しいStringBuilderの(); 
            sb.AppendFormat(" URL:{0} <BR> " 、URL); 
            sb.AppendFormat(" コントローラー:{0} <BR> " 、コントローラ名)。
            sb.AppendFormat("処置:{0} <BR> "actionNameの); 
            sb.AppendFormat(" 引数:{0} <BR> " 引数); 
            sb.AppendFormat(" コンテンツ:{0} <BR> 、コンテンツ); 
            SB .AppendFormat(" exceptionMessage:{0} <BR> " 、exceptionMessage); 
            sb.AppendFormat(" exceptionTrace:{0} <BR> " 、exceptionTrace); 
            actionExcutedContext.Response = 新しい HttpResponseMessage(){内容= 新しい StringContent(SB .ToString())、のStatusCode =} System.Net.HttpStatusCode.InternalServerError;
             // ログ

            sb.Clearを(); 
            SB = NULL ;
             ベース.OnException(actionExcutedContext); 
        } 
    }

おすすめ

転載: www.cnblogs.com/fanfan-90/p/12075592.html