Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/asp.net-mvc/16.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
MVC 5 c#将错误报告回数据库_C#_Asp.net Mvc_Error Handling - Fatal编程技术网

MVC 5 c#将错误报告回数据库

MVC 5 c#将错误报告回数据库,c#,asp.net-mvc,error-handling,C#,Asp.net Mvc,Error Handling,我们有一个MVC应用程序,将(用户产生的)错误记录回支持数据库的最佳方法是什么?用户应只看到“已报告此错误”错误消息 所有细节都应写入数据库 请帮忙 我建议您要么使用外部库,如Log4Net,要么创建自己的库类,为您进行日志记录 另一个建议是使用MVC文件中可用的ExceptionFilter,并编写登录该过滤器的代码。我的建议是因为它不会导致您一次又一次地编写代码,因为它遵循的是枯燥的原则 例如: public class CustomExceptionFilter: FilterAttrib

我们有一个MVC应用程序,将(用户产生的)错误记录回支持数据库的最佳方法是什么?用户应只看到“已报告此错误”错误消息

所有细节都应写入数据库


请帮忙

我建议您要么使用外部库,如Log4Net,要么创建自己的库类,为您进行日志记录

另一个建议是使用MVC文件中可用的
ExceptionFilter
,并编写登录该过滤器的代码。我的建议是因为它不会导致您一次又一次地编写代码,因为它遵循的是枯燥的原则

例如:

public class CustomExceptionFilter: FilterAttribute,  
IExceptionFilter   
{  
    public void OnException(ExceptionContext filterContext)   
    {  
        if (!filterContext.ExceptionHandled)   
        {  
            //log error here 
            Logger.LogException(filterContext.Exception);
            //this will redirect to error page and show use logging is done 
            filterContext.Result = new   
                        RedirectResult("customErrorPage.html");  
             filterContext.ExceptionHandled = true;  
        }  
    }  
}
比你能做的还要多

//Over controller  
[CustomExceptionFilter]  
public class HomeController:Controller 
{  
   //......  
}  


//Over the Action  
[CustomExceptionFilter]  
public ActionResult Index() 
{  
   //.......  
}  

检查此日志4net:

如果连接到支持数据库时出错,会发生什么情况?tbh记录错误的最佳位置是应用程序服务器上的文本文件。使用logger…如log4net,它将记录到您的database@user1666620请小心声称“最佳”实践。您会发现不同的意见(特别是当日志文件填满文件系统时).我认为这应该转移到programmers.stackexchange,因为这不是一个特定的错误,而是一个设计question@richard如果您正处于文件系统充满错误日志的阶段,那么我不认为将它们存储在数据库中会有帮助。