Одним из параметров конфигурации IIS является объем информации об ошибках, передаваемой в браузер клиента.
Понятно, почему кому-то может понадобиться иметь собственные серверы разработки и не передавать общественности подробные сообщения об ошибках со своих рабочих серверов.
Как настроить IIS для отправки ошибок на определенные хосты - например, на IP-адрес разработчика? Я не хочу подключаться к удаленному рабочему столу сервера только для того, чтобы увидеть, какая на самом деле ошибка в приложении.
Альтернатива, о которой я думаю, — это настройка другого веб-сайта на том же сервере и предоставление доступа только определенным хостам. Этот веб-сайт будет действовать как обратный прокси-сервер для веб-сайта, с которого я пытаюсь получить подробные ошибки, но это кажется более сложным, чем должно быть.
решение1
Использование стандартных настроек IIS позволяет различать только локальный сервер и любую удаленную машину. Невозможно разрешить определенным удаленным машинам получать подробные ошибки, а другим — нет.
В любом случае есть один трюк, как это можно сделать.
Ваша идея о наличии второго сайта для разработки уже верна: в идеале вам нужен один сайт со всеми файлами приложения, но при этом вам нужны два разных файла web.config для определения настроек ошибок.
Наличие одного сайта, но двух конфигураций невозможно, но система конфигурации IIS является иерархической, и вы можете хранить большинство настроек в нескольких местах.
Создайте два веб-сайта, оба из которых будут ссылаться на одно и то же физическое местоположение.
Вместо того чтобы помещать свои настройки в локальный файл web.config, вы помещаете их <system.web><customErrors>
в глобальный файл web.config %systemroot%\Microsoft.NET\Framework64\v4.0.30319\Config\web.config
и <system.webServer><httpErrors>
в %systemroot%\System32\inetsrv\config\applicationHost.config
обоих случаях окружаете эти настройки тегом местоположения, например:
<location path="ProdSite">
<system.web>
<customErrors mode="On" />
</system.web>
</location>
<location path="DevSite">
<system.web>
<customErrors mode="Off" />
</system.web>
</location>
Для этого вы по-прежнему можете использовать диспетчер IIS. В Management
разделе сайта откройте Configuration Editor
и перейдите к настройкам, которые вы хотите изменить. В раскрывающемся списке вверху From
выберите Root Web.Config
илиApplicationHost.config
Все еще не очень просто, но вы справитесь с одним веб-сайтом.