Как предотвратить передачу aspxerrorpath в виде строки запроса в ASP.NET настраиваемые страницы ошибок

JIT обозначает Своевременный, что означает, что код компилируется, когда это необходимо, не перед временем выполнения.

Это выгодно, потому что компилятор может генерировать код, который оптимизирован для Вашей конкретной машины. Статический компилятор, как Ваш средний компилятор C, скомпилирует весь код исполняемого кода на машине разработчика. Следовательно компилятор выполнит оптимизации на основе некоторых предположений. Это может компилировать более медленно и делать больше оптимизаций, потому что это не замедляет осуществление программы для пользователя.

38
задан alex 31 March 2017 в 16:40
поделиться

1 ответ

В моем случае я предпочитаю не, используют Web.config. Затем я создал код выше в файле Global.asax:

protected void Application_Error(object sender, EventArgs e)
    {
        Exception ex = Server.GetLastError();

        //Not Found (When user digit unexisting url)
        if(ex is HttpException && ((HttpException)ex).GetHttpCode() == 404)
        {
            HttpContextWrapper contextWrapper = new HttpContextWrapper(this.Context);

            RouteData routeData = new RouteData();
            routeData.Values.Add("controller", "Error");
            routeData.Values.Add("action", "NotFound");

            IController controller = new ErrorController();
            RequestContext requestContext = new RequestContext(contextWrapper, routeData);
            controller.Execute(requestContext);
            Response.End();
        }
        else //Unhandled Errors from aplication
        {
            ErrorLogService.LogError(ex);
            HttpContextWrapper contextWrapper = new HttpContextWrapper(this.Context);

            RouteData routeData = new RouteData();
            routeData.Values.Add("controller", "Error");
            routeData.Values.Add("action", "Index");

            IController controller = new ErrorController();
            RequestContext requestContext = new RequestContext(contextWrapper, routeData);
            controller.Execute(requestContext);
            Response.End();
        }
    }

И thtat мой ErrorController.cs

public class ErrorController : Controller
{
    // GET: Error
    public ViewResult Index()
    {
        Response.StatusCode = 500;
        Exception ex = Server.GetLastError();
        return View("~/Views/Shared/SAAS/Error.cshtml", ex);
    }

    public ViewResult NotFound()
    {
        Response.StatusCode = 404;
        return View("~/Views/Shared/SAAS/NotFound.cshtml");
    }
}

, И это - мой ErrorLogService.cs

//common service to be used for logging errors
public static class ErrorLogService
{
    public static void LogError(Exception ex)
    {
        //Do what you want here, save log in database, send email to police station
    }
}
0
ответ дан 27 November 2019 в 03:17
поделиться