Пример конфигурации для

#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> …. у вас есть какие-либо примеры?