Контекст:Как показать страницу пользовательской ошибки при удаленном доступе?
Мы хотим использовать страницу ошибки, чтобы показать ошибки пользователя.
В файле Global.asax
используется крюк Application_Error
для пересылки всех ошибок на страницу пользовательских ошибок в нашем ErrorController
. Это ~/Error/Index
. Global.asax
имеет следующий код:
protected void Application_Error(Object sender, EventArgs e)
{
var lRedirectController = "Error";
var lRedirectAction = "Index";
[...]
var lStatusCode = ?; // will be set dependent on the exception. E.g. 403
HttpContextWrapper lContextWrapper = new HttpContextWrapper(Context);
RouteData routeData = new RouteData();
routeData.Values.Add("controller", lRedirectController);
routeData.Values.Add("action", lRedirectAction);
routeData.Values.Add("pStatusCode", lStatusCode);
routeData.Values.Add("pIsAjaxRequest", lContextWrapper.Request.IsAjaxRequest());
[...]
// execute error controller
using (ErrorController lController = new ErrorController())
{
RequestContext requestContext = new RequestContext(lContextWrapper, routeData);
lController.BaseExecute(requestContext);
}
Response.End();
}
ErrorController
имеет следующий код в Index
действий:
public ActionResult Index(bool pIsAjaxRequest = false, string pMessage = null, int pStatusCode = 500, Exception pException = null, string pAdditionalInfo = null)
{
// assign the status code to the response header
Response.StatusCode = pStatusCode;
// [...]
// if it was an ajax request, return json, else the view
if (!pIsAjaxRequest)
{
// [...]
return View("Index", "_BlankPage");
}
else
{
// json response
}
}
Файл web.config
в корневой папке имеет не декларации <customErrors mode="On"/>
. Если я добавлю это или нет, поведение будет таким же.
Проблема:
Когда я исполняю ошибку на моей локальной машине, страница ошибок пользовательских будет показано, как ожидалось. Но когда я звоню приложение с другого компьютера через браузер по сети, то я получаю любую другую страницу ошибки:
Вопрос:
Как я могу показать страницу ошибки на удаленном доступ?
прочитайте здесь [здесь] (https://www.asp.net/web-forms/overview/older-versions-getting-started/deploying-web-site-projects/displaying-a-custom-error-page -cs) – crowchirp
@crai: Я думаю, что вы не отвечали на красный вопрос: «Если я добавлю это или нет, поведение будет таким же». Кроме того, страница за вашей ссылкой говорит о YSOD. Как вы видите скриншот в моем вопросе, это не YSOD. – Simon
нормально, получилось, см. Ответы в ответах – crowchirp