Trong dự án web MVC của tôi. Tôi đang cố gắng hiển thị các trang lỗi tùy chỉnh cho khách truy cập của mình mà không sử dụng phần tử "custromerrors" trong web.config.Elmah không đăng nhập ngoại lệ
tôi có thể bắt ngoại lệ như dưới đây
protected void Application_Error(object sender, EventArgs e)
{
Exception exception = Server.GetLastError();
bool success = RaiseErrorSignal(exception);
Response.Clear();
HttpException httpException = exception as HttpException;
RouteData routeData = new RouteData();
routeData.Values.Add("controller", "Error");
if (httpException == null)
{
routeData.Values.Add("action", "Index");
}
else //It's an Http Exception, Let's handle it.
{
switch (httpException.GetHttpCode())
{
case 404:
// Page not found.
routeData.Values.Add("action", "Error404");
break;
case 500:
// Server error.
routeData.Values.Add("action", "Error500");
break;
// Here you can handle Views to other error codes.
// I choose a General error template
default:
routeData.Values.Add("action", "Index");
break;
}
}
// Pass exception details to the target error View.
routeData.Values.Add("error", exception);
// Clear the error on server.
Server.ClearError();
// Call target Controller and pass the routeData.
IController errorController = new ProjectName.WebSite.Controllers.ErrorController();
errorController.Execute(new RequestContext(
new HttpContextWrapper(Context), routeData));
}
private static bool RaiseErrorSignal(Exception e)
{
var context = HttpContext.Current;
if (context == null)
return false;
var signal = ErrorSignal.FromContext(context);
if (signal == null)
return false;
signal.Raise(e, context);
return true;
}
Nhưng ELMAH lỗi không thể đăng nhập cũng tôi đang nâng tín hiệu lỗi.
Vì vậy, câu hỏi của bạn là gì? Tất cả những gì tôi thấy là một kết luận. –
signal.Raise (e, context) không hoạt động vì khi tôi truy cập vào /elmah.axd để xem các ngoại lệ, danh sách rỗng. – Yucel