用C# 代码咋管理IIS呢?

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

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

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

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

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

C#添加用程序池

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#添加网站

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方法提交变更就可以了,这样就完成了网站的创建工作。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值