Метод HTTP Debug показывает заголовок сервера на IIS
Застрял в действительно странной проблеме и не могу понять, как справиться с этим. Итак, у меня есть приложение asp web api, размещенное в IIS 10. Я использую модуль IIS Rewrite с правилом исходящих сообщений, который удаляет любой заголовок сервера:
<outboundRules rewriteBeforeCache="true">
<rule name="Remove Server header">
<match serverVariable="RESPONSE_SERVER" pattern=".*" />
<action type="Rewrite" value="" />
</rule>
</outboundRules>
Это работает как брелок всегда, за исключением случая, когда я отправляю запрос, используя глагол DEBUG. В этом случае он возвращает заголовок сервера и тело ответа о том, что отладка не реализована. Я попытался исправить это с помощью следующей настройки:
<security>
<requestFiltering removeServerHeader="true" >
<verbs allowUnlisted="true">
<clear/>
<add verb="DEBUG" allowed="false"/>
</verbs>
</requestFiltering>
</security>
Кстати, requestFiltering removeServerHeader="true" также удаляет заголовок сервера (в случае, когда перезапись IIS отключена). Опять же во всех случаях, кроме запроса DEBUG. Отказ от DEBUG технически тоже ничего не дает, я больше не получаю тело запроса, но все равно получаю заголовок сервера с информацией о моем сервере. Я также попробовал пользовательские модули и тоже не повезло.
Что еще я могу сделать, чтобы скрыть переменную сервера для запросов отладки?
1 ответ
ASP.NET используется для установки статуса DEBUG для сайта. Образец будет выглядеть так вweb.config
файл.
Поскольку ASP.NET может иметь разные пути к сайтам, вам необходимо убедиться, что каждый файл web.config настроен правильно.
<system.web>
<compilation debug="true">
</compilation>
</system.web>
Это используется в целях отладки, но может быть использовано, если не соблюдать меры предосторожности.
Ссылка на это:Поведение сайта — отладка приложений.
Надеюсь, это поможет. С уважением,