using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Microsoft.Web.Administration;
namespace IIS自動安裝程序_控制臺版v1._0_20100727_zch
{
public class IIS7Core1
{
/// <summary>
/// 創(chuàng)建站點
/// </summary>
/// <param name="siteName">站點名稱</param>
/// <param name="bindingInfo">綁定<example>"*:80:myhost.com"</example></param>
/// <param name="physicalPath">物理路徑</param>
/// <param name="pathToResourceFile">資源路徑</param>
/// <param name="pathTo公用上傳">資源路徑</param>
/// <param name="password">FileUser密碼</param>
/// <param name="defaultDocName">默認首頁</param>
public static void Create(string siteName, string bindingInfo, string physicalPath, string pathToResourceFile, string pathTo公用上傳, string password, string defaultDocName)
{
//Delete an existent web site.
ServerManager iisManager = new ServerManager();
Site site = iisManager.Sites[siteName];
if (site != null)
{
iisManager.Sites.Remove(site);
iisManager.CommitChanges();
}
//Delete an existent web site app pool.
iisManager = new ServerManager();
ApplicationPool oldpool = iisManager.ApplicationPools[siteName + "Pool"];
if (oldpool != null)
{
iisManager.ApplicationPools.Remove(oldpool);
iisManager.CommitChanges();
}
iisManager = new ServerManager();
//創(chuàng)建站點
iisManager.Sites.Add(siteName, "http", bindingInfo, physicalPath);
if (true)
{
//創(chuàng)建應(yīng)用程序池
ApplicationPool pool = iisManager.ApplicationPools.Add(siteName + "Pool");
//設(shè)置應(yīng)用程序池標(biāo)識
pool.ProcessModel.IdentityType = ProcessModelIdentityType.ApplicationPoolIdentity;
//if (!String.IsNullOrEmpty(appPoolUserName))
//{
// pool.ProcessModel.UserName = appPoolUserName;
// pool.ProcessModel.Password = appPoolPassWord;
//}
//設(shè)置應(yīng)用程序池的托管管道模式
pool.ManagedPipelineMode = ManagedPipelineMode.Classic;
//設(shè)置應(yīng)用程序池的.net版本
pool.ManagedRuntimeVersion = "v4.0";
//設(shè)置應(yīng)用程序池的名稱
iisManager.Sites[siteName].Applications["/"].ApplicationPoolName = pool.Name;
}
//將一個應(yīng)用程序(Application)添加到一個站點
//iisManager.Sites[siteName].Applications.Add("/" + siteName, physicalPath);
//建立虛擬目錄(Virtual Directory)
Application app = iisManager.Sites[siteName].Applications[0];
if (siteName.ToLower().Contains("web"))
{
//虛擬目錄
app.VirtualDirectories.Add("/ResourceFile", pathToResourceFile);
app.VirtualDirectories.Add("/UploadCenter", pathTo公用上傳);
app.VirtualDirectories.Add("/UploadFile", pathTo公用上傳);
//設(shè)置每個虛擬目錄的認證
app.VirtualDirectories["/ResourceFile"].UserName = "FileUser";
app.VirtualDirectories["/ResourceFile"].Password = password;
app.VirtualDirectories["/UploadCenter"].UserName = "FileUser";
app.VirtualDirectories["/UploadCenter"].Password = password;
app.VirtualDirectories["/UploadFile"].UserName = "FileUser";
app.VirtualDirectories["/UploadFile"].Password = password;
}
else if (siteName.ToLower().Contains("sdzn"))
{
app.VirtualDirectories.Add("/Upload", pathTo公用上傳);
app.VirtualDirectories["/Upload"].UserName = "FileUser";
app.VirtualDirectories["/Upload"].Password = password;
}
else//wcf
{
app.VirtualDirectories.Add("/ResourceFile", pathToResourceFile);
app.VirtualDirectories.Add("/UploadFile", pathTo公用上傳);
app.VirtualDirectories["/ResourceFile"].UserName = "FileUser";
app.VirtualDirectories["/ResourceFile"].Password = password;
app.VirtualDirectories["/UploadFile"].UserName = "FileUser";
app.VirtualDirectories["/UploadFile"].Password = password;
}
iisManager.CommitChanges();
//在站點上添加默認文檔
iisManager = new ServerManager();
Configuration cfg = iisManager.GetWebConfiguration(siteName);
ConfigurationSection defaultDocumentSection = cfg.GetSection("system.webServer/defaultDocument");
ConfigurationElement filesElement = defaultDocumentSection.GetChildElement("files");
ConfigurationElementCollection filesCollection = filesElement.GetCollection();
foreach (ConfigurationElement elt in filesCollection)
{
if (elt.Attributes["value"].Value.ToString() == defaultDocName)
{
return;
}
}
try
{
ConfigurationElement docElement = filesCollection.CreateElement();
docElement.SetAttributeValue("value", defaultDocName);
filesCollection.Add(docElement);
}
catch (Exception) { } //this will fail if existing
iisManager.CommitChanges();
}
}
}
該文章在 2021/5/11 16:18:22 編輯過