Метод 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>

Это используется в целях отладки, но может быть использовано, если не соблюдать меры предосторожности.

Ссылка на это:Поведение сайта — отладка приложений.

Надеюсь, это поможет. С уважением,

Другие вопросы по тегам