IIS站点管理-IIS站点以管理员身份或指定用户运行

PS:概要、背景、结语都是日常“装X”,可以跳过直接看应用程序池设置

环境:Windows Server 2008、阿里云ECS、IIS7.0

 

概要

  IIS应用程序默认情况下,是使用内置帐户运行的,权限比较有限,在一些代码操作需要以管理员身份运行或指定特定帐户运行,需要进行特殊的设置。

 

背景

  测试环境用Jenkins搭建了.Net发布平台,但在涉及投产的时候,由于需要集成负载均衡(SLB)、配置发布、测试页浏览,且投产不涉及代码重新生成,只是把预发布环境的文件复制到投产,切换IIS目录,再重启生效,所以想通过C#代码来实现该功能。

 

应用程序池设置

  情景1、通过C#代码调用批处理的方式安装windows服务,在使用IIS内置帐户的情况,会导致无法运行,需要以管理员身份运行;

  情景2、C#提供了类库对IIS进行管理,如IIS站点新建、删除、切换IIS目录、停止站点、启动站点等(具体相关代码见:【3、IIS站点管理代码】),在使用IIS内置帐户的情况,会导致无法运行,需要指定帐户才能运行;

  

  1、应用程序池->高级设置->进程模型->标识 

  

  2、应用程序池标识 ->自定义帐户->设置凭据

  

  3、C#对IIS站点管理代码(复制于网络)

  类库:Microsoft.Web.Administration.dll

       Microsoft.Web.Administration.ServerManager sm = new Microsoft.Web.Administration.ServerManager();

            System.Console.WriteLine("应用程序池默认设置:");
            System.Console.WriteLine("\t常规:");
            System.Console.WriteLine("\t\t.NET Framework 版本:{0}", sm.ApplicationPoolDefaults.ManagedRuntimeVersion);
            System.Console.WriteLine("\t\t队列长度:{0}", sm.ApplicationPoolDefaults.QueueLength);
            System.Console.WriteLine("\t\t托管管道模式:{0}", sm.ApplicationPoolDefaults.ManagedPipelineMode.ToString());
            System.Console.WriteLine("\t\t自动启动:{0}", sm.ApplicationPoolDefaults.AutoStart);

            System.Console.WriteLine("\tCPU:");
            System.Console.WriteLine("\t\t处理器关联掩码:{0}", sm.ApplicationPoolDefaults.Cpu.SmpProcessorAffinityMask);
            System.Console.WriteLine("\t\t限制:{0}", sm.ApplicationPoolDefaults.Cpu.Limit);
            System.Console.WriteLine("\t\t限制操作:{0}", sm.ApplicationPoolDefaults.Cpu.Action.ToString());
            System.Console.WriteLine("\t\t限制间隔(分钟):{0}", sm.ApplicationPoolDefaults.Cpu.ResetInterval.TotalMinutes);
            System.Console.WriteLine("\t\t已启用处理器关联:{0}", sm.ApplicationPoolDefaults.Cpu.SmpAffinitized);

            System.Console.WriteLine("\t回收:");
            System.Console.WriteLine("\t\t发生配置更改时禁止回收:{0}", sm.ApplicationPoolDefaults.Recycling.DisallowRotationOnConfigChange);
            System.Console.WriteLine("\t\t固定时间间隔(分钟):{0}", sm.ApplicationPoolDefaults.Recycling.PeriodicRestart.Time.TotalMinutes);
            System.Console.WriteLine("\t\t禁用重叠回收:{0}", sm.ApplicationPoolDefaults.Recycling.DisallowOverlappingRotation);
            System.Console.WriteLine("\t\t请求限制:{0}", sm.ApplicationPoolDefaults.Recycling.PeriodicRestart.Requests);
            System.Console.WriteLine("\t\t虚拟内存限制(KB):{0}", sm.ApplicationPoolDefaults.Recycling.PeriodicRestart.Memory);
            System.Console.WriteLine("\t\t专用内存限制(KB)ÿ
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值