my web.config:
<customErrors mode="Off" redirectMode="ResponseRewrite" defaultRedirect="~/Pages/Error/DefaultError.aspx">
<error statusCode="404" redirect="~/Pages/Error/Page404.aspx" />
<error statusCode="500" redirect="~/Pages/Error/DefaultError.aspx" />
</customErrors>
<httpErrors existingResponse="Replace" defaultResponseMode="ExecuteURL" errorMode="Custom"> //also used other options for existingResponse
<remove statusCode="403"/>
<error statusCode="403" path="~/Pages/Error/PI403.aspx" responseMode="ExecuteURL"/>
</httpErrors>
и вот мой метод Application_error в файле global.asax.cs:
Server.ClearError(); //clear the error so we can continue onwards
var errorPage = "~/Pages/Error/DefaultError.aspx";
var httpException = ex as HttpException;
if (httpException != null && httpException.GetHttpCode() == (int)HttpStatusCode.NotFound)
{
errorPage = "~/Pages/Error/Page404.aspx";
}
Response.Redirect(errorPage);
У меня есть файл Logs в проекте, ноэтот файл использует только логирование.Если я использую ссылку браузера myURL / Logs, я получаю страницу ошибки IIS 403.14.Если я пишу myURL / asdeds, я получаю свою страницу с ошибкой (в моем проекте чего-то такого не существует).Потому что исключение 403 не вызывает Application_Error.Я хочу показать свою пользовательскую страницу ошибок для всех исключений.Я должен увидеть свою пользовательскую страницу ошибки, когда я записываю свою часть URL / журналов в URL.
, а также я устанавливаю свойство TrySkipIisCustomError в Application_BeginRequest
HttpContext.Current.Response.TrySkipIisCustomErrors = true;