1. using System.Collections.Generic;
  2. using System.DirectoryServices;
  3. using System.Linq;
  4. using Microsoft.Web.Administration; //位于:C:\Windows\System32\inetsrv\Microsoft.Web.Administration.dll
  5.  
  6. namespace Whir.Software.IISManager.IISManager
  7. {
  8. /// <summary>
  9. /// IIS应用程序池辅助类
  10. /// </summary>
  11. public class AppPoolService
  12. {
  13. protected static string Host = "localhost";
  14.  
  15. /// <summary>
  16. /// 取得所有应用程序池
  17. /// </summary>
  18. /// <returns></returns>
  19. public static List<string> GetAppPools()
  20. {
  21. var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
  22. return (from DirectoryEntry entry in appPools.Children select entry.Name).ToList();
  23. }
  24.  
  25. /// <summary>
  26. /// 取得单个应用程序池
  27. /// </summary>
  28. /// <returns></returns>
  29. public static ApplicationPool GetAppPool(string appPoolName)
  30. {
  31. ApplicationPool app = null;
  32. var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
  33. foreach (DirectoryEntry entry in appPools.Children)
  34. {
  35. if (entry.Name == appPoolName)
  36. {
  37. var manager = new ServerManager();
  38. app = manager.ApplicationPools[appPoolName];
  39. }
  40. }
  41. return app;
  42. }
  43.  
  44. /// <summary>
  45. /// 判断程序池是否存在
  46. /// </summary>
  47. /// <param name="appPoolName">程序池名称</param>
  48. /// <returns>true存在 false不存在</returns>
  49. public static bool IsAppPoolExsit(string appPoolName)
  50. {
  51. bool result = false;
  52. var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
  53. foreach (DirectoryEntry entry in appPools.Children)
  54. {
  55. if (entry.Name.Equals(appPoolName))
  56. {
  57. result = true;
  58. break;
  59. }
  60. }
  61. return result;
  62. }
  63.  
  64. /// <summary>
  65. /// 删除指定程序池
  66. /// </summary>
  67. /// <param name="appPoolName">程序池名称</param>
  68. /// <returns>true删除成功 false删除失败</returns>
  69. public static bool DeleteAppPool(string appPoolName)
  70. {
  71. bool result = false;
  72. var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
  73. foreach (DirectoryEntry entry in appPools.Children)
  74. {
  75. if (entry.Name.Equals(appPoolName))
  76. {
  77. try
  78. {
  79. entry.DeleteTree();
  80. result = true;
  81. break;
  82. }
  83. catch
  84. {
  85. result = false;
  86. }
  87. }
  88. }
  89. return result;
  90. }
  91.  
  92. /// <summary>
  93. /// 创建应用程序池
  94. /// </summary>
  95. /// <param name="appPool"></param>
  96. /// <returns></returns>
  97. public static bool CreateAppPool(string appPool)
  98. {
  99. try
  100. {
  101. if (!IsAppPoolExsit(appPool))
  102. {
  103. var appPools = new DirectoryEntry(string.Format("IIS://{0}/W3SVC/AppPools", Host));
  104. DirectoryEntry entry = appPools.Children.Add(appPool, "IIsApplicationPool");
  105. entry.CommitChanges();
  106. return true;
  107. }
  108. }
  109. catch
  110. {
  111. return false;
  112. }
  113. return false;
  114. }
  115.  
  116. /// <summary>
  117. /// 编辑应用程序池
  118. /// </summary>
  119. /// <param name="application"></param>
  120. /// <returns></returns>
  121. public static bool EditAppPool(ApplicationPool application)
  122. {
  123. try
  124. {
  125. if (IsAppPoolExsit(application.Name))
  126. {
  127. var manager = new ServerManager();
  128. manager.ApplicationPools[application.Name].ManagedRuntimeVersion = application.ManagedRuntimeVersion;
  129. manager.ApplicationPools[application.Name].ManagedPipelineMode = application.ManagedPipelineMode;
  130. //托管模式Integrated为集成 Classic为经典
  131. manager.CommitChanges();
  132. return true;
  133. }
  134. }
  135. catch
  136. {
  137. return false;
  138. }
  139. return false;
  140. }
  141. }
  142. }

AppPoolService-IIS应用程序池辅助类(C#控制应用程序池操作)的更多相关文章

  1. C# IIS应用程序池辅助类 分类: C# Helper 2014-07-19 09:50 249人阅读 评论(0) 收藏

    using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using Microsoft ...

  2. [原]AppPoolService-IIS应用程序池辅助类(C#控制应用程序池操作)

    using System.Collections.Generic; using System.DirectoryServices; using System.Linq; using Microsoft ...

  3. IIS:连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解

    Internet Information Services(IIS,互联网信息服务),是由微软公司提供的基于运行Microsoft Windows的互联网基本服务.最初是Windows NT版本的可选 ...

  4. IIS连接数、并发连接数、最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数详解

    IIS:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池的最大工作进程数详解 iis性能指标的各种概念:连接数.并发连接数.最大并发工作线程数.应用程序池的队列长度.应用程序池 ...

  5. Azure Service Bus(二)在NET Core 控制台中如何操作 Service Bus Queue

    一,引言 上一篇讲到关于 Azure ServiceBus 的一些概念,讲到 Azure Service Bus(服务总线),其实也叫 "云消息服务",是微软在Azure 上提供的 ...

  6. IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的

    IIS连接数 一般购买过虚拟主机的朋友都熟悉购买时,会限制IIS连接数,这边先从普通不懂代码用户角度理解IIS连接数 顾名思义即为IIS服务器可以同时容纳客户请求的最高连接数,准确的说应该叫" ...

  7. 你真的了解:IIS连接数、IIS并发连接数、IIS最大并发工作线程数、应用程序池的队列长度、应用程序池的最大工作进程数 吗?

    原文链接:http://www.cnblogs.com/yinhaichao/p/4060209.html?utm_source=tuicool&utm_medium=referral 一般购 ...

  8. .net操作IIS,新建网站,新建应用程序池,设置应用程序池版本,设置网站和应用程序池的关联

    ServerManager类用来操作IIS,提供了很多操作IIS的API.使用ServerManager必须引用Microsoft.Web.Administration.dll,具体路径为:%wind ...

  9. 【jQuery】总结:筛选器、控制隐藏、操作元素style属性

    筛选器 -> http://blog.csdn.net/lijinwei112/article/details/6938134 常用到的: $("tr[id=ac_"+id+ ...

随机推荐

  1. 改变了Tomcat路径后无法卸载和重装的解决办法

    错误如下: ---------------------------Apache Tomcat Setup---------------------------Failed to install Tom ...

  2. HTML 5 应用程序缓存

    使用 HTML5,通过创建 cache manifest 文件,可以轻松地创建 web 应用的离线版本. 什么是应用程序缓存(Application Cache)? HTML5 引入了应用程序缓存,这 ...

  3. 在xib里,拖一个UIView到UITableView中作为tableHeaderView

    原贴地址:http://blog.csdn.net/haoxinqingb/article/details/41683881 内容 在xib里,拖一个UIView到UITableView中作为tabl ...

  4. Tomcat入门指南

    转自javaresearch.com由timgball 整理 Tomcat是一个免费的开源Web服务器,最新版本是5.5.1,支持Servlet2.4,JSP2.0,非常适合初学者学习Java Web ...

  5. MySQL索引的创建、删除和查看

    MySQL索引的创建.删除和查看 此文转自http://blogold.chinaunix.net/u3/93470/showart_2001536.html 1.索引作用 在索引列上,除了上面提到的 ...

  6. python多线程备份MYSQL数据库并删除旧的备份。

    #!/usr/bin/python # -*- coding=utf-8 -*- import time import os import datetime import threading from ...

  7. windows下使用批处理文件调用python程序

    这个随笔涉及到几个批处理脚本得知识点. windows的start命令, 启动另一个窗口运行指定的程序或命令. windows的call命令, 从批处理程序调用另一个程序, 直到被调用程序退出, 再继 ...

  8. Spark-1.0.0 standalone分布式安装教程

    Spark目前支持多种分布式部署方式:一.Standalone Deploy Mode:二Amazon EC2.:三.Apache Mesos:四.Hadoop YARN.第一种方式是单独部署,不需要 ...

  9. hdu.5195.DZY Loves Topological Sorting(topo排序 && 贪心)

    DZY Loves Topological Sorting Time Limit: 4000/2000 MS (Java/Others)    Memory Limit: 131072/131072 ...

  10. [素材资源] Android开发性能优化简介(非常不错的)

    转自(http://www.starming.com/index.php?action=plugin&v=wave&tpl=union&ac=viewgrouppost& ...