#asp.net #iis-7 #web-config
#asp.net #iis-7 #web-config
Вопрос:
У меня есть веб-приложение в Asp.Net 4 работает локально в IIS 7. Мне нужно отобразить пользовательскую страницу (404) и 500 вместо страницы по умолчанию для IIS. Использование этого httpErrors в Web.Config
<system.webServer>
<httpErrors>
Мой сайт находится в
C:inetpubwwwrootmysite
Моя пользовательская страница ошибок в:
C:inetpubwwwrootmysiteErrorPages404.htm
C:inetpubwwwrootmysiteErrorPages505.htm
Я не понимаю, как это работает. Не могли бы вы предоставить мне пример кода?
Спасибо
Ответ №1:
Я решил свою проблему с этим.
<httpErrors errorMode="Custom">
<remove statusCode="404" subStatusCode='-1' />
<remove statusCode="500" subStatusCode='-1' />
<error statusCode="404" path="/404.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL" />
<error statusCode="500" path="/500.aspx" prefixLanguageFilePath="" responseMode="ExecuteURL" />
</httpErrors>
Это нужно ввести в Web.config
разделе <configuration>
> <system.webServer>
например
<configuration>
<system.webServer>
<httpErrors ...>
// define errors in here ...
</httpErrors>
</system.webServer>
</configuration>
Комментарии:
1. Вы можете опустить
prefixLanguageFilePath=""
.2. Спасибо, что поделились! 1
3. Предложение: включите родительские элементы, чтобы читатели могли видеть, что это происходит внутри
<configuration><system.webServer>
Ответ №2:
Вот пример, надеюсь, это поможет
<system.web>
<customErrors mode="RemoteOnly" defaultRedirect="default.aspx">
<error statusCode="404" redirect="~/ErrorPages/404.htm"/>
<error statusCode="500" redirect="~/ErrorPages/505.htm"/>
</customErrors>
</system.web>
Редактировать для комментариев: вот пример, который, я думаю, вам нужен
<configuration>
<system.webServer>
<httpErrors errorMode="DetailedLocalOnly" defaultResponseMode="File" >
<remove statusCode="500" />
<error statusCode="500"
prefixLanguageFilePath="C:ContosoContenterrors"
path="500.htm" />
</httpErrors>
</system.webServer>
</configuration>
http://www.iis.net/ConfigReference/system.webServer/httpErrors/error
Комментарии:
1. спасибо, это работает для asp.net но на моем сервере мне нужна конфигурация даже для статического контента
2. Извините, я не понимаю. Не могли бы вы объяснить?
3. насколько я понимаю, ваш код работает, если мне требуется страница, которая не существует (с расширением .aspx), например: foo.aspx, где foo.aspx не существует на сервере. Вместо этого мне нужно работать с <system.webServer> <httpErrors> …. у вас есть какие-либо примеры?