当前位置:   article > 正文

用C# 代码咋管理IIS呢?_c# b/s 管理iis

c# b/s 管理iis

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

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

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

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

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

C#添加用程序池

  1. ServerManager serverManager = new ServerManager();
  2. if (textBox4.Text.IsNullOrWhiteSpace())
  3. {
  4. MessageBox.Show("请输入应用程序池名称");
  5. return;
  6. }
  7. if (comboBox2.SelectedItem == null)
  8. {
  9. MessageBox.Show("请选择托管模式");
  10. return;
  11. }
  12. if (comboBox1.SelectedItem == null)
  13. {
  14. MessageBox.Show("请选择应用程序标识");
  15. return;
  16. }
  17. var appool = serverManager.ApplicationPools.Add(textBox4.Text);
  18. appool.ManagedPipelineMode = (ManagedPipelineMode)Enum.Parse(typeof(ManagedPipelineMode), omboBox2.SelectedItem.ToString());
  19. appool.ProcessModel.IdentityType = (ProcessModelIdentityType)Enum.Parse(typeof(ProcessModelIdentityType), omboBox1.SelectedItem.ToString());
  20. serverManager.CommitChanges();
  21. MessageBox.Show("创建应用程序池成功");

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

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


C#添加网站

  1. if (textBox1.Text.IsNullOrWhiteSpace())
  2. {
  3. MessageBox.Show("请输入网站名称");
  4. return;
  5. }
  6. if (textBox6.Text.IsNullOrWhiteSpace())
  7. {
  8. MessageBox.Show("请指定网站路径");
  9. return;
  10. }
  11. if (textBox8.Text.IsNullOrWhiteSpace())
  12. {
  13. MessageBox.Show("请先创建应用程序池");
  14. return;
  15. }
  16. try
  17. {
  18. ServerManager serverManager = new ServerManager();
  19. Site site = serverManager.Sites.Add(textBox1.Text.Trim(), textBox6.Text, int.Parse(textBox13.Text));
  20. site.ServerAutoStart = true;
  21. site.Applications[0].ApplicationPoolName = textBox8.Text;
  22. site.Bindings.Clear();
  23. site.Bindings.Add($"{textBox5.Text}:{textBox13.Text}:{textBox2.Text}", "http"); //ip:端口:域名
  24. serverManager.CommitChanges();
  25. site.Start();
  26. MessageBox.Show("创建网站成功!");
  27. }
  28. catch (Exception ex)
  29. {
  30. MessageBox.Show($"创建网站过程出错,原因:{ex.Message}");
  31. }

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

 

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/252204
推荐阅读
相关标签
  

闽ICP备14008679号