Пользовательская страница ошибок не работает в производстве

Я реализовал пользовательскую страницу 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

из метода действия. Это будет работать.

Другие вопросы по тегам