Назад | Перейти на главную страницу

Удаленные ошибки IIS для определенных хостов

Один из вариантов конфигурации IIS - сколько подробностей об ошибке передается браузеру клиента.

Понятно, почему нужно иметь собственные серверы разработки и не передавать подробные сообщения об ошибках общественности со своих рабочих серверов.

Как настроить IIS для отправки ошибок на определенные хосты - например, на IP-адрес разработчика? Я не хочу подключать удаленный рабочий стол к серверу, чтобы просто посмотреть, в чем настоящая ошибка в приложении.

Альтернатива, о которой я думаю, - это создание другого веб-сайта на том же сервере и предоставление доступа только определенным хостам. Этот веб-сайт будет действовать как обратный прокси-сервер для веб-сайта, с которого я пытаюсь получить подробную информацию об ошибках, но это кажется более сложным, чем должно быть.

Использование стандартных настроек IIS позволяет различать только локальный сервер и любую удаленную машину. Невозможно разрешить одним удаленным машинам получать подробные ошибки, а другим - нет.

В любом случае есть уловка, как это сделать.

Ваша идея о наличии второго сайта для разработки уже актуальна. В идеале вам нужен один сайт со всеми файлами вашего приложения, но вы хотите, чтобы два разных файла web.configs определяли настройки ошибок.

Невозможно иметь один сайт, но две конфигурации, но система конфигурации 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

По-прежнему не очень-то просто, но с одним веб-сайтом можно обойтись.