Пользовательское перенаправление ошибок в коде 404 для файлов, отличных от aspx

Я добавил в свой web.config:

<customErrors mode="RemoteOnly" defaultRedirect="~/Pages/Error/Error.aspx">
    <error statusCode="404" redirect="~/Pages/Error/Error404.aspx"/>
</customErrors>

и он отлично работает для страниц .aspx. Когда я пытаюсь ввести: http://domainname.com/notExist, я получаю 404 по умолчанию.

Я попробовал предложения из: 404 Redirecting for non-aspx-pages

но ничего не работает для меня. Есть идеи, почему?

Я использую .net 3.5, режим конвейера пула приложений интегрирован.

После добавления <httpErrors> я получаю: введите здесь описание изображения


person Inbal    schedule 10.03.2014    source источник


Ответы (2)


Попробуйте это, он предоставит отдельный статус. Затем вы можете выполнить в соответствии с вашими требованиями.

<system.web>
    <customErrors mode="RemoteOnly" defaultRedirect="~/Pages/Error/Error.aspx">
        <error statusCode="404" redirect="~/Pages/Error/Error404.aspx"/>
    </customErrors>
</system.web>
<system.webserver>
<asp scriptErrorSentToBrowser="true"/>    
    <httpErrors errorMode="Detailed">
          <error statusCode="401" path="/Pages/Error/Error.aspx" responseMode="Redirect" />
          <error statusCode="403" path="/Pages/Error/Error.aspx" responseMode="ExecuteURL" />
          <error statusCode="404" path="/Pages/Error/Error404.aspx" responseMode="ExecuteURL" />
          <error statusCode="500" path="/Pages/Error/Error.aspx" responseMode="ExecuteURL" />
    </httpErrors>
</system.webserver>
person Shirish    schedule 10.03.2014
comment
Пробовал, но теперь получаю код 500 (тоже не кастомный :)) - person Inbal; 10.03.2014
comment
затем сделайте так --›‹customErrors mode=RemoteOnly defaultRedirect=~/Pages/Error/Error.aspx›‹error statusCode=404 redirect=~/Pages/Error/Error404.aspx/›‹error statusCode=500 redirect=~ /Pages/Error/Error.aspx/›‹/customErrors› - person Shirish; 11.03.2014
comment
Я так и сделал... посмотри на мой вопрос. Работает только для файлов .aspx. - person Inbal; 11.03.2014
comment
где это в вашем вопросе? --› ‹error statusCode=500 redirect=~/Pages/Error/Error.aspx/› в ‹customErrors... - person Shirish; 11.03.2014
comment
@Inbal Try --› ‹customErrors mode=On defaultRedirect=~/Pages/Error/Error.aspx › - person Shirish; 12.03.2014
comment
@Inbal, надеюсь, вы получите ответ --› http://www.stokia.com/support/misc/web-config-custom-httperrors.aspx stackoverflow.com/questions/6939371/ - person Shirish; 12.03.2014
comment
@Inbal вы найдете лучший ответ здесь --› msdn.microsoft.com/en-us/library/h0hfz6fc%28v=vs.100%29.aspx - person Shirish; 12.03.2014

Вам нужно разделить настройки для других страниц.

Попробуйте что-нибудь вроде этого.

 <system.webserver>
      <httpErrors errorMode="Custom" >
            <remove statusCode="404" subStatusCode="-1" />
             <error statusCode="404" path="~/Pages/Error/Error404.aspx" />
      </httpErrors>
 </system.webserver>
person Jalpesh Vadgama    schedule 10.03.2014
comment
Я уже пытался, но это не работает. У меня не открывается пользовательская страница. - person Inbal; 10.03.2014
comment
вы оба ставили отдельно? - person Jalpesh Vadgama; 10.03.2014
comment
что вы имеете в виду под обоими? Настройки system.web и system.webserver? - person Inbal; 10.03.2014
comment
Да, вы должны иметь оба - person Jalpesh Vadgama; 10.03.2014
comment
Да, я получаю 404, но не могу открыть свою пользовательскую страницу. - person Inbal; 10.03.2014
comment
Я добавил скрин в свой пост - person Inbal; 10.03.2014
comment
попробуйте что-нибудь вроде этого. ‹код состояния ошибки=404 путь=~/Pages/Error/Error404.aspx responseMode=ExecuteURL /› - person Jalpesh Vadgama; 10.03.2014