为了使用 C# 语言编程的方式创建同样的网站,可以使用 Microsoft.Web.Administration 名称空间。Microsoft.Web.Administration 程序集保存在 %systemroot%\system32\inetsrv 目录下,可以在应用程序中引用该程序集。如果使用 Visual Studio 作为开发工具,那么则需要使用 IntelliSense。使用 Microsoft.Web.Administration 创建 Web 网站时,可以赋予网站一定的访问权限,但是,与一般的网站创建时使用的模板所拥有的权限相比,还需要针对 FileIOPermission 和 SecurityPermission 赋予更高的访问权限。一般来说,最好以完全的信任权限来运行网站,这是因为:如果在某台服务器上创建一个网站,那么相当于实际上将该网站视为一个可信 Web 网站。如果需要修改网站,那么就必须更新 applicationHost.config 文件。如果使用了 PowerShell 来操作 API,并且 PowerShell 以管理员账号运行,那么就无须修改 applicationHost.config 文件。
// create the server management object
ServerManager managerServer = new ServerManager();
//create site object off the server management object
managerServer.Sites.Add( "WebSite1", "http", "*:80:www.website1.com", "c:\\inetpub\\wwwroot\\website1");
//create application pool
managerServer.ApplicationPools.Add( "WebSite1AppPool");
//assign application pool to site.
managerServer.Sites[ "WebSite1"].Applications[0].ApplicationPoolName = "WebSite1AppPool";
//create apppool object
ApplicationPool appPool = managerServer.ApplicationPools[ "WebSite1AppPool"];
//set app pool options
appPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
appPool.AutoStart = true;
appPool.Failure.RapidFailProtection = true;
//write the changes
managerServer.CommitChanges();
ServerManager managerServer = new ServerManager();
//create site object off the server management object
managerServer.Sites.Add( "WebSite1", "http", "*:80:www.website1.com", "c:\\inetpub\\wwwroot\\website1");
//create application pool
managerServer.ApplicationPools.Add( "WebSite1AppPool");
//assign application pool to site.
managerServer.Sites[ "WebSite1"].Applications[0].ApplicationPoolName = "WebSite1AppPool";
//create apppool object
ApplicationPool appPool = managerServer.ApplicationPools[ "WebSite1AppPool"];
//set app pool options
appPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
appPool.AutoStart = true;
appPool.Failure.RapidFailProtection = true;
//write the changes
managerServer.CommitChanges();