Posso definir programaticamente meus IIS7 site-ligações (por exemplo. Foo.domain.com)?
-
03-07-2019 - |
Pergunta
para o meu site IIS7, eu tive que ir para o Gerenciador de Serviços de IIS7 e definir todas as ligações para o site. Funciona bem.
Eu queria saber se é possível fazer isso programaticamente no arquivo web.config em vez disso? Eu sei que você pode fornecer algumas configurações do IIS 7 em lá .. foi não tenho certeza se é possível também incluem as ligações?
por exemplo.
- http; All IP não atribuído de; a porta 80; foo.domain.com
- https; 192.168.0.2; a porta 443; blah.domain.com
Solução
A configuração é encontrado no arquivo de configuração do pai applicationHost.config, porém eu não tenho certeza que ele pode ser substituído. Por exemplo, no IIS expresso a seção que você está procurando é:
<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>
Você poderia tentar correr (desculpe - eu não tentei qualquer um desses eu):
% windir% \ system32 \ inetsrv \ appcmd.exe desbloqueio configuração -section: system.applicationHost
Mas de um ponto de vista da segurança não faz sentido permitir web.configs a cada bagunça individualmente com system.applicationHost, como configuração de um site pode quebrar qualquer outro site.
Outras dicas
Olhe para o namespace Microsoft.Web.Administration. Você pode, então, configurar e maniuplate mais de IIS 7 de código C #.
Há também é um utilitário Appcmd que lhe permite manipular quase tudo no IIS 7.0. ser avisado de que esta ferramenta tem toneladas de opções e switches. Eu só usei isso para o mais básico de tarefas como mudar diretórios físicos em aplicações.