用C# 代码咋管理IIS呢?

本文来源于自写C#添加网站应用程序池虚拟目录实现网站管理一文,完整代码请参见原文。 

自写C#添加网站应用程序池虚拟目录实现网站管理,做为一个使用C#语言开发web项目的开发人员,基本上都熟悉一些IIS的管理工作,例如手动在IIS上创建网站,创建应用程序,创建虚拟目录等,那么你是否想过自己实现一个网站管理工具来实现自动建站呢?本文就来阐述如何实现这样的网站管理工具。

如果你还不熟悉怎样怎样在IIS上部署网站,可以阅读下面的这些文章。

通常来说网站管理工具可以完成一些不通过IIS就可以在Windows服务器上创建网站,创建应用程序池,绑定域名,建立虚拟目录,应用程序等,以及数据库的相关管理工作,这样的工具就是方便小白用户管理网站。

闲话少说,下面将分别介绍怎样使用C#代码添加IIS应用程序池、网站、虚拟目录、应用程序等功能,并将添加的应用程序池和网站关联。不过在开始之前,还是展示一下这个示例程序的界面吧:

用C# 代码咋管理IIS呢?_第1张图片

C#添加用程序池

用C# 代码咋管理IIS呢?_第2张图片

ServerManager serverManager = new ServerManager();
if (textBox4.Text.IsNullOrWhiteSpace())
{
    MessageBox.Show("请输入应用程序池名称");
    return;
}
if (comboBox2.SelectedItem == null)
{
    MessageBox.Show("请选择托管模式");
    return;
}
if (comboBox1.SelectedItem == null)
{
    MessageBox.Show("请选择应用程序标识");
    return;
}
var appool = serverManager.ApplicationPools.Add(textBox4.Text);
appool.ManagedPipelineMode = (ManagedPipelineMode)Enum.Parse(typeof(ManagedPipelineMode), omboBox2.SelectedItem.ToString());
appool.ProcessModel.IdentityType = (ProcessModelIdentityType)Enum.Parse(typeof(ProcessModelIdentityType), omboBox1.SelectedItem.ToString());
serverManager.CommitChanges();

MessageBox.Show("创建应用程序池成功");

正如上面的代码那样,一开始实例化了一个ServerManager对象,这个对象至关重要,在我们通过C#来添加网站、虚拟目录、应用程序池、应用程序时,会一直使用它的,你需要通过Nuget添加命名空间Microsoft.Web.Administration的引用。

添加完应用程序池后,在IIS里面可以看到如下图所示的结果:

用C# 代码咋管理IIS呢?_第3张图片


C#添加网站

用C# 代码咋管理IIS呢?_第4张图片

if (textBox1.Text.IsNullOrWhiteSpace())
{
    MessageBox.Show("请输入网站名称");
    return;
}
if (textBox6.Text.IsNullOrWhiteSpace())
{
    MessageBox.Show("请指定网站路径");
    return;
}
if (textBox8.Text.IsNullOrWhiteSpace())
{
    MessageBox.Show("请先创建应用程序池");
    return;
}
try
{
    ServerManager serverManager = new ServerManager();
    Site site = serverManager.Sites.Add(textBox1.Text.Trim(), textBox6.Text, int.Parse(textBox13.Text));
    site.ServerAutoStart = true;
    site.Applications[0].ApplicationPoolName = textBox8.Text;

    site.Bindings.Clear();
    site.Bindings.Add($"{textBox5.Text}:{textBox13.Text}:{textBox2.Text}", "http");  //ip:端口:域名

    serverManager.CommitChanges();

    site.Start();
    MessageBox.Show("创建网站成功!");
}
catch (Exception ex)
{
    MessageBox.Show($"创建网站过程出错,原因:{ex.Message}");
}

最核心的代码就是try catch块里面的创建网站代码,可以看到,依然使用了ServerManager对象来完成网站的创建工作,在创建网站的同时,代码中设置网站为自动启动,即网站创建好了之后就启动网站,之后就为网站设置应用程序池,最后通过调用serverManager.CommitChanges方法提交变更就可以了,这样就完成了网站的创建工作。

 

你可能感兴趣的:(C#分类,随便写写,c#,服务器,开发语言)