Пользовательская страница ошибок не работает в производстве
Я реализовал пользовательскую страницу 404 в моем ASP. Приложение NET MVC 5, сначала я проверил его на своем локальном хосте, и оно отлично работало. Но когда я переместил свои настройки в релиз конфигурации и попытался протестировать его в рабочей среде, пользовательская страница 404 исчезла, появилась страница ошибки mvc по умолчанию. Что я сделал не так?
Web.config
<system.webServer>
<httpErrors errorMode="Custom" existingResponse="Replace">
<remove statusCode="404" />
<error statusCode="404" responseMode="ExecuteURL" path="/Error/Index" />
</httpErrors>
</system.webServer>
контроллер
public class ErrorController : BaseController
{
public ActionResult Index(string id)
{
ViewModel vm = new ViewModel();
Response.StatusCode = 404;
return View("~/Views/..../Index.cshtml", vm);
}
}
3 ответа
Я помню, это должно быть установлено под <system.web>
, Так и должно быть.
<customErrors mode="Off" defaultRedirect="/Error/Index">
<error statusCode="404" redirect="/Error/Index" />
</customErrors>
Так что установка mode="Off"
а также mode="On"
будет включать и выключать страницу пользовательских ошибок.
Попробуйте добавить это в конфигурационный файл
<customErrors mode ="on" defaultRedirect="">
</customErrors>
Я столкнулся с той же проблемой. Код работал в Dev, а не в Prod.
Просто удалите строку
Response.StatusCode = 404; //REMOVE
из метода действия. Это будет работать.