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>
/// 创建站点
/// </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();
//创建站点
iisManager.Sites.Add(siteName, "http", bindingInfo, physicalPath);
if (true)
{
//创建应用程序池
ApplicationPool pool = iisManager.ApplicationPools.Add(siteName + "Pool");
//设置应用程序池标识
pool.ProcessModel.IdentityType = ProcessModelIdentityType.ApplicationPoolIdentity;
//if (!String.IsNullOrEmpty(appPoolUserName))
//{
// pool.ProcessModel.UserName = appPoolUserName;
// pool.ProcessModel.Password = appPoolPassWord;
//}
//设置应用程序池的托管管道模式
pool.ManagedPipelineMode = ManagedPipelineMode.Classic;
//设置应用程序池的.net版本
pool.ManagedRuntimeVersion = "v4.0";
//设置应用程序池的名称
iisManager.Sites[siteName].Applications["/"].ApplicationPoolName = pool.Name;
}
//将一个应用程序(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公用上传);
//设置每个虚拟目录的认证
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 编辑过