Я пытаюсь добавить пользовательские страницы ошибок в свое веб-приложение.До сих пор я добавил это в мой файл web.config под элементом:
<customErrors mode="On" >
<error statusCode="404" redirect="~/404.aspx"/>
<error statusCode="500" redirect="~/500.aspx"/>
</customErrors>
Это прекрасно работает для ошибок, которые .NET затрагивает, например, URL, который содержит расширение .aspx.Однако я также хочу, чтобы пользовательские ошибки отображались для URL-адреса, например www.example.com/dasda
. В настоящее время, когда я запрашиваю страницу, подобную приведенной выше, IIS 7.5 отображает свое собственное сообщение об ошибке.Я добавил это под элементом:
<httpErrors >
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" path="~/404.aspx" responseMode="ExecuteURL" />
<remove statusCode="500" subStatusCode="-1" />
<error statusCode="500" path="~/500.aspx" responseMode="ExecuteURL" />
</httpErrors>
Я думал, что это заставит IIS отображать пользовательскую страницу ошибки вместо страниц по умолчанию, но это не так.
Мне известно, что я могу установить пользовательскую страницу ошибок в самом IIS, но идеальным решением для моей ситуации было бы настроить ее в файле web.config.
Я попытался добавить ее на свои пользовательские страницы ошибокдля события Page_Load, как было предложено здесь :
Response.TrySkipIisCustomErrors = true;
Однако это не помешало отображению страницы IIS по умолчанию вместо моей пользовательской страницы ошибок.Я также попробовал то, что предлагается здесь :
<httpErrors >
<remove statusCode="404" subStatusCode='-1' />
<error statusCode="404" path="~/404.aspx" prefixLanguageFilePath='' responseMode="Redirect" />
<remove statusCode="500" subStatusCode='-1' />
<error statusCode="500" path="~/500.aspx" prefixLanguageFilePath='' responseMode="Redirect" />
</httpErrors>
Но это также не сработало.
Так есть ли способ запретить IIS отображать страницы ошибок по умолчанию путем настройки параметров в файле web.config?