Могу ли я программно определить привязки сайта IIS7 (например.foo.domain.com)?
-
03-07-2019 - |
Вопрос
для моего веб-сайта IIS7 мне пришлось зайти в диспетчер служб IIS7 и определить все привязки для сайта.Работает отлично.
Мне было интересно, можно ли вместо этого сделать это программно в файле web.config?Я знаю, что вы можете предоставить там несколько настроек iis7..не был уверен, можно ли включить привязки?
например.
- http;все неназначенные IP-адреса;порт 80;foo.domain.com
- 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.имейте в виду, что этот инструмент имеет множество опций и переключателей.Я использовал его только для самых простых задач, таких как изменение физических каталогов в приложениях.