专业网站建设品牌,十四年专业建站经验,服务6000+客户--广州京杭网络
免费热线:400-963-0016      微信咨询  |  联系我们

AppPoolService-IIS应用程序池辅助类(C#控制应用程序池操作)

当前位置:网站建设 > 技术支持
资料来源:网络整理       时间:2023/2/14 0:37:39       共计:3684 浏览
  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. }
版权说明:
本网站凡注明“广州京杭 原创”的皆为本站原创文章,如需转载请注明出处!
本网转载皆注明出处,遵循行业规范,如发现作品内容版权或其它问题的,请与我们联系处理!
欢迎扫描右侧微信二维码与我们联系。
·上一条:C#重启IIS指定网站和指定应用程序池 | ·下一条:solr管理页面删除集合内所有数据命令

Copyright © 广州京杭网络科技有限公司 2005-2025 版权所有    粤ICP备16019765号 

广州京杭网络科技有限公司 版权所有