2016-03-11 7 views
1

Я внедрил пользовательскую страницу 404 в моем ASP. NET MVC 5, сначала я тестировал его на своем локальном хосте, и он отлично работал. Но когда я переместил настройки для выпуска config и попытался протестировать его в процессе производства, пользовательская страница 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); 
    } 
} 

enter image description here

+0

Какую версию IIS вы используете? – SamGhatak

+0

Я запускаю Windows Server 2012 R2, поэтому он должен быть IIS 8.5 –

+0

Я изучаю эту вещь, между тем я нашел [это] (http://stackoverflow.com/questions/6648007/iis7-custom-404-not- показывая) ссылку, вы можете попробовать это? – SamGhatak

ответ

0

Try добавив в конфигурационный файл

<customErrors mode ="on" defaultRedirect=""> 

</customErrors> 
1

Я помню, что он должен быть установлен под номером <system.web>. Так оно и должно быть.

<customErrors mode="Off" defaultRedirect="/Error/Index"> 
    <error statusCode="404" redirect="/Error/Index" /> 
</customErrors> 

Так устанавливая mode="Off" и mode="On" переключит страницу ошибки включения и выключения.

+1

'customErrors' и' httpErrors' - это два разных зверя. ['customErrors'] (https://msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.100%29.aspx) обрабатывает страницы ошибок с ошибками .Net, а [' httpErrors'] (https: //www.iis.net/configreference/system.webserver/httperrors) применяется к страницам ошибок по умолчанию IIS. 'customErrors' не распространяется на случаи, которые не связаны с конвейером .Net, как запросы на статические ресурсы. –

+0

звучит круто !! Спасибо за информацию. –