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

StackOverflow https://stackoverflow.com/questions/809826

  •  03-07-2019
  •  | 
  •  

Вопрос

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

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

например.

  1. http;все неназначенные IP-адреса;порт 80;foo.domain.com
  2. https;192.168.0.2;порт 443;blah.domain.com
Это было полезно?

Решение

Конфигурация находится в файле конфигурации родительского приложенияHost.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 разблокировать конфигурацию -section:system.applicationHost

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top