赞
踩
本文来源于自写C#添加网站应用程序池虚拟目录实现网站管理一文,完整代码请参见原文。
自写C#添加网站应用程序池虚拟目录实现网站管理,做为一个使用C#语言开发web项目的开发人员,基本上都熟悉一些IIS的管理工作,例如手动在IIS上创建网站,创建应用程序,创建虚拟目录等,那么你是否想过自己实现一个网站管理工具来实现自动建站呢?本文就来阐述如何实现这样的网站管理工具。
如果你还不熟悉怎样怎样在IIS上部署网站,可以阅读下面的这些文章。
通常来说网站管理工具可以完成一些不通过IIS就可以在Windows服务器上创建网站,创建应用程序池,绑定域名,建立虚拟目录,应用程序等,以及数据库的相关管理工作,这样的工具就是方便小白用户管理网站。
闲话少说,下面将分别介绍怎样使用C#代码添加IIS应用程序池、网站、虚拟目录、应用程序等功能,并将添加的应用程序池和网站关联。不过在开始之前,还是展示一下这个示例程序的界面吧:
- 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里面可以看到如下图所示的结果:
- 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方法提交变更就可以了,这样就完成了网站的创建工作。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。