Выброс HttpException всегда отправляет обратно ошибку HTTP 500?

Я пытаюсь вернуть клиенту код ошибки HTTP 403. Я читал, что HttpException - самый чистый способ добиться этого, но у меня он не работает. Я генерирую исключение на странице, как это:

throw new HttpException(403,"You must be logged in to access this resource.");

Однако это даст только стандартную трассировку стека ASP.Net (с ошибкой 500), когда CustomErrors выключен. Если CustomErrors включен, это не будет перенаправлять на страницу, которую я настроил для отображения при возникновении ошибки 403. Следует ли мне забыть о HttpException и вместо этого установить все коды HTTP самостоятельно? Как мне это исправить?

В моем Web.Config есть настраиваемые ошибки:

<customErrors mode="On" defaultRedirect="GenericErrorPage.html">
      <error statusCode="403" redirect="Forbidden.html" />
</customErrors>

Вместо Forbidden.html я получу GenericErrorPage.html

14
задан Earlz 10 April 2011 в 16:02
поделиться