Могу ли я программно определить привязки сайта IIS7 (например, foo.domain.com)? - PullRequest
4 голосов
/ 01 мая 2009

для моего веб-сайта IIS7 мне пришлось зайти в диспетчер служб IIS7 и определить все привязки для сайта. Работает нормально.

Мне было интересно, возможно ли сделать это программно в файле web.config? Я знаю, что вы можете указать там несколько настроек iis7 ... не уверен, возможно ли также включить привязки?

например.

  1. HTTP; все неназначенные IP-адреса; порт 80; foo.domain.com
  2. HTTPS; 192.168.0.2; порт 443; blah.domain.com

Ответы [ 2 ]

2 голосов
/ 17 октября 2011

Конфигурация находится в файле конфигурации родительского applicationHost.config, однако я не уверен, что ее можно переопределить. Например, в IIS Express раздел, который вы ищете:

<system.applicationHost>
...

    <sites>
        <site name="Development Web Site" id="1" serverAutoStart="true">
            <application path="/">
                <virtualDirectory path="/" physicalPath="%IIS_BIN%\AppServer\empty_wwwroot" />
            </application>
            <bindings>
                <binding protocol="http" bindingInformation=":8080:localhost" />
            </bindings>
        </site>
        <siteDefaults>
            <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" />
            <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" />
        </siteDefaults>
        <applicationDefaults applicationPool="IISExpressAppPool" />
        <virtualDirectoryDefaults allowSubDirConfig="true" />
    </sites>

</system.applicationHost>

Вы можете попробовать запустить (извините - я сам не пробовал ничего из этого):

% windir% \ system32 \ inetsrv \ appcmd.exe Разблокировать конфигурационный раздел - раздел system.applicationHost

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

1 голос
/ 01 мая 2009

Посмотрите на пространство имен Microsoft.Web.Administration. Затем вы можете настроить и манипулировать большей частью IIS 7 из кода C #.

есть также утилита Appcmd , которая позволяет вам манипулировать практически всем в IIS 7.0. Имейте в виду, что этот инструмент имеет множество опций и переключателей. Я использовал его только для самых основных задач, таких как изменение физических каталогов в приложениях.

...