Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/307.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 全局捕获程序异常错误并写入asp.net core 2.1 web api中的文件_C#_Asp.net_.net_Asp.net Core_Asp.net Core 2.0 - Fatal编程技术网

C# 全局捕获程序异常错误并写入asp.net core 2.1 web api中的文件

C# 全局捕获程序异常错误并写入asp.net core 2.1 web api中的文件,c#,asp.net,.net,asp.net-core,asp.net-core-2.0,C#,Asp.net,.net,Asp.net Core,Asp.net Core 2.0,一、 我正在尝试为asp.net core 2.1 web api中的执行错误(而不是http状态错误)创建全局异常处理服务并写入文件 尝试了一些选择,比如 services.AddMvc(config => { config.Filters.Add(typeof(GlobalExceptionFilter)); }) .SetCompatibilityVersion(Compa

一、 我正在尝试为asp.net core 2.1 web api中的执行错误(而不是http状态错误)创建全局异常处理服务并写入文件

尝试了一些选择,比如

services.AddMvc(config =>
            {
                config.Filters.Add(typeof(GlobalExceptionFilter));
            })
                .SetCompatibilityVersion(CompatibilityVersion.Version_2_1)
                .AddSessionStateTempDataProvider();
异常类

public class GlobalExceptionFilter : IExceptionFilter
    {
        public void OnException(ExceptionContext context)
        {
            HttpStatusCode status = HttpStatusCode.InternalServerError;
            String message = String.Empty;

            var exceptionType = context.Exception.GetType();
            if (exceptionType == typeof(UnauthorizedAccessException))
            {
                message = "Unauthorized Access";
                status = HttpStatusCode.Unauthorized;
            }
            else if (exceptionType == typeof(NotImplementedException))
            {
                message = "A server error occurred.";
                status = HttpStatusCode.NotImplemented;
            }
            else if (exceptionType == typeof(MyAppException))
            {
                message = context.Exception.ToString();
                status = HttpStatusCode.InternalServerError;
            }
            else
            {
                message = context.Exception.Message;
                status = HttpStatusCode.NotFound;
            }
            context.ExceptionHandled = true;

            HttpResponse response = context.HttpContext.Response;
            response.StatusCode = (int)status;
            response.ContentType = "application/json";
            var err = message + " " + context.Exception.StackTrace;
            response.WriteAsync(err);
        }
    }
我尝试过调试,但从来没有遇到过调试代码

谁能告诉我如何在文件中记录全局错误

从这个解决方案中找到了一些解决方案


你试过serilog吗?我使用MongoDb