Предположим, у меня есть следующая коллекция
в web.config
:
<httpErrors>
</httpErrors>
Да, красиво, но пусто.
И в IIS 7 , моя страница ошибок HTTP выглядит так:
Прекрасно! (Я выделил 404 просто потому, что через секунду я воспользуюсь этим примером.)
Теперь я запускаю следующий код:
errorElement["statusCode"] = 404;
errorElement["subStatusCode"] = -1;
errorElement["path"] = "/404.html";
httpErrorsCollection.Add(errorElement);
Прекрасно. Теперь у меня есть, как и ожидалось, это в моем web.config
:
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
<error statusCode="404" subStatusCode="-1" prefixLanguageFilePath="" path="/404.html" />
</httpErrors>
Как нельзя лучше. Теперь в IIS 7 мой раздел ошибок HTTP выглядит, как и ожидалось, как показано ниже:
В этот момент жизнь не могла быть слаще. Теперь, в дальнейшем, я хочу программно вернуть мою ошибку 404 обратно в состояние, показанное на исходном снимке экрана. Логика подсказывает, что я должен удалить
мою новую ошибку:
httpErrorsCollection.Remove(errorElement);
Но, увы, если я сделаю это, мой web.config
будет выглядеть примерно так:
<httpErrors>
<remove statusCode="404" subStatusCode="-1" />
</httpErrors>
И мой IIS выглядит примерно так:
Это ожидается из-за моего web.config
- но как, используя ServerManager
и все его полезные API IIS 7, я могу удалить httpError
полностью и вернуть мой web.config
обратно в:
<httpErrors>
</httpErrors>
Есть идеи?