• WIN10 应用程序修改IIS程序池配置及Azure云服务修改程序池配置避免自动回收


    以下内容源自需修改Azure云服务修改程序池的定期回收配置在本地测试及部署到Azure的记录。

    一、Win10下修改指定网站应用程序池的配置

    1、修改IIS程序池的代码如下:

    引用命名空间 using Microsoft.Web.Administration;

                //初始化IIS操作类
                using (ServerManager serverManager = new ServerManager())
                {
                    var siteName = "website";//网站名称
                    var siteApplication = serverManager.Sites[siteName].Applications.First();//网站对应的第一个应用程序
                    var appPoolName = siteApplication.ApplicationPoolName;//应用程序对应的应用程序池名称
                    var appPool = serverManager.ApplicationPools[appPoolName];//应用程序池
                    appPool.Recycling.DisallowRotationOnConfigChange = true;//发生配置更改时禁止回收
                    appPool.Recycling.PeriodicRestart.Time = TimeSpan.FromSeconds(0);//禁止固定时间间隔回收
                    appPool.Recycling.PeriodicRestart.Schedule.Add(new TimeSpan(4, 0, 0));//增加特定时间凌晨4点回收
    
                    serverManager.CommitChanges();//提交变更
                    Console.WriteLine("修改成功");
                }
    

    ServerManager的API参考MSDN https://msdn.microsoft.com/zh-cn/library/microsoft.web.administration.servermanager_members(v=vs.90).aspx

    对IIS配置的修改具体可参考 https://www.iis.net/configreference/system.applicationhost/applicationpools

    2、权限配置

    我本机会出现“文件名: redirection.config 错误: 由于权限不足而无法读取配置文件”的错误

    需要对文件redirection.config添加用户computernameIIS_IUSRS的操作权限,具体位置为C:WindowsSystem32inetsrvconfig。

    二、Azure云服务修改当前WebRole应用程序池的配置

    1、修改Cloud服务ServiceDefinition.csdef文件,使程序有修改IIS配置的权限

    添加<Runtime executionContext="elevated"/>,位置如下:

     

    2、Web角色启动时先修改IIS配置信息,在Web角色WebRole.cs的OnStart()方法里添加程序代码

    如果添加的是现有网站为Web角色,需要添加WebRole.cs类,格式为:

    OnStart方法里添加IIS操作代码,如下(注释可参考上面):

    using (ServerManager serverManager = new ServerManager())
                {
                    var siteName = RoleEnvironment.CurrentRoleInstance.Id + "_Web";
                    var siteApplication =
                        serverManager.Sites[siteName].Applications.First();
                    var appPoolName = siteApplication.ApplicationPoolName;
                    var appPool = serverManager.ApplicationPools[appPoolName];
    
                    appPool.Recycling.DisallowRotationOnConfigChange = true;
                    appPool.Recycling.PeriodicRestart.Time = TimeSpan.FromSeconds(0);
                    appPool.Recycling.PeriodicRestart.Schedule.Add(new TimeSpan(20, 0, 0));
                    
                    serverManager.CommitChanges();
                }
    
    本博客所有内容均为原创,转载请注明出处!谢谢
  • 相关阅读:
    long类型的数据转化为时间
    取到数组中对应位置的文字,并且转成大写
    无key值的json数组解析
    mongo-2ds索引对超过半球范围的适用性测试
    mongoDB-Cannot change the size of a document in a capped collection:
    springboot
    左中右布局的五种实现方式
    spring boot 常见的配置问题
    移动端H5拍照代码实现及外网部署
    JAVA数据库操作回滚小结
  • 原文地址:https://www.cnblogs.com/hepc/p/6340602.html
Copyright © 2020-2023  润新知