我可以以编程方式定义我的IIS7站点绑定(例如.foo.domain.com)吗?

时间:2009-05-01 01:08:11

标签: iis-7 web-config

对于我的IIS7网站,我必须进入IIS7服务管理器并定义该站点的所有绑定。工作正常。

我想知道是否可以在web.config文件中以编程方式执行此操作?我知道你可以在那里提供一些iis7设置..不确定是否也可以包含绑定?

例如。

  1. HTTP;所有未分配的IP; 80号港口; foo.domain.com
  2. https和192.168.0.2; 443港口; blah.domain.com

2 个答案:

答案 0 :(得分:2)

配置可以在父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解锁config -section:system.applicationHost

但是从安全的角度来看,允许web.configs与system.applicationHost分别混淆是没有意义的,因为一个站点的配置可能会破坏其他所有站点。

答案 1 :(得分:1)

查看Microsoft.Web.Administration命名空间。然后,您可以使用C#代码配置和配置大部分IIS 7。

还有一个实用程序Appcmd,它允许您操作IIS 7.0中的几乎所有内容。请注意,此工具有大量选项和开关。我只将它用于最基本的任务,例如更改应用程序上的物理目录。