• .NET 通过代码操作 IIS站点,程序池(ServerManager)


    创建站点

     1 using Microsoft.Web.Administration;
     2 using System;
     3 using System.Collections.Generic;
     4 using System.Linq;
     5 using System.Text;
     6 using System.Threading.Tasks;
     7 
     8 namespace IISManager
     9 {
    10 
    11    
    12     class Program
    13     {
    14 
    15         private static ServerManager sm = new ServerManager();
    16         static void Main(string[] args)
    17         {
    18            
    19             string siteName = "test";
    20             int port = 8888;
    21             string sitePath = "D://testSite";
    22 
    23             string applicationName = "testpool";
    24             string applicationPoolVersion = "v4.0";
    25 
    26 
    27 
    28             CreateSite(sm, siteName, port, sitePath);
    29             CreateApplicationPool(sm, applicationName, applicationPoolVersion);
    30             BindApplicationPool(sm, siteName,applicationName);
    31 
    32         }
    33 
    34         /// <summary>
    35         /// 创建站点
    36         /// </summary>
    37         /// <param name="sm"></param>
    38         /// <param name="siteName"></param>
    39         /// <param name="port"></param>
    40         /// <param name="sitePath"></param>
    41         private static void CreateSite(ServerManager sm, string siteName, int port, string sitePath)
    42         {
    43            
    44 
    45             var siteCount = sm.Sites.Where(p => p.Name == siteName).ToList().Count();
    46 
    47             if (siteCount==0)
    48             {
    49                 sm.Sites.Add(siteName, sitePath, port);
    50                 sm.CommitChanges();
    51             }
    52            
    53         }
    54 
    55         /// <summary>
    56         /// 创建应用程序池
    57         /// </summary>
    58         /// <param name="sm"></param>
    59         /// <param name="applicationName"></param>
    60         /// <param name="applicationPoolVersion"></param>
    61         private static void CreateApplicationPool(ServerManager sm, string applicationName, string applicationPoolVersion)
    62         {
    63           
    64             var poolCount = sm.ApplicationPools.Where(p => p.Name == applicationName).ToList().Count();
    65             if (poolCount==0)
    66             {
    67                 ApplicationPool newPool = sm.ApplicationPools.Add(applicationName);
    68                 newPool.ManagedRuntimeVersion = applicationPoolVersion;
    69                 newPool.ManagedPipelineMode = ManagedPipelineMode.Integrated;
    70                 sm.CommitChanges();
    71             }
    72            
    73         }
    74 
    75         /// <summary>
    76         /// 绑定站点和程序池
    77         /// </summary>
    78         /// <param name="sm"></param>
    79         /// <param name="siteName"></param>
    80         /// <param name="applicationName"></param>
    81         private static void BindApplicationPool(ServerManager sm, string siteName, string applicationName)
    82         {
    83             var site = sm.Sites.Where(p => p.Name == siteName).FirstOrDefault();
    84             var applicationPool = sm.ApplicationPools.Where(p => p.Name == applicationName).FirstOrDefault();
    85 
    86             site.Stop();
    87             site.ApplicationDefaults.ApplicationPoolName = applicationPool.Name;
    88             foreach (var item in site.Applications)
    89             {
    90                 item.ApplicationPoolName = applicationPool.Name;
    91             }
    92 
    93             sm.CommitChanges();
    94             site.Start();
    95             applicationPool.Recycle();
    96 
    97         }
    98     }
    99 }

    ------------恢复内容结束------------

  • 相关阅读:
    js简单验证码的生成和验证
    基本够用的php.ini配置文件(CentOS7)
    转发:CentOS下tar压缩排除某个文件夹或文件及解压
    阿里云服务器CentOS7 vsftp安装、设置及后台端口的设置
    转发:entos7修改文件夹权限和用户名用户组
    转发:查看centos中的用户和用户组
    阿里云服务器CentOS7怎么分区格式化/挂载硬盘
    php调试用的几个小方法
    Jquery实现日期转换为 Unix时间戳及时间戳转换日期
    Jquery计算时间戳之间的差值,可返回年,月,日,小时等
  • 原文地址:https://www.cnblogs.com/morehappy/p/15940954.html
Copyright © 2020-2023  润新知