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

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

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
//初始化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添加用户computername\IIS_IUSRS的操作权限,具体位置为C:\Windows\System32\inetsrv\config。

 

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

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

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

 

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

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

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

1
2
3
4
5
6
7
8
9
10
11
12
13
14
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();
            }

 

posted on   村_长  阅读(1944)  评论(0编辑  收藏  举报

编辑推荐:
· 开发中对象命名的一点思考
· .NET Core内存结构体系(Windows环境)底层原理浅谈
· C# 深度学习:对抗生成网络(GAN)训练头像生成模型
· .NET 适配 HarmonyOS 进展
· .NET 进程 stackoverflow异常后,还可以接收 TCP 连接请求吗?
阅读排行:
· 本地部署 DeepSeek:小白也能轻松搞定!
· 基于DeepSeek R1 满血版大模型的个人知识库,回答都源自对你专属文件的深度学习。
· 在缓慢中沉淀,在挑战中重生!2024个人总结!
· 大人,时代变了! 赶快把自有业务的本地AI“模型”训练起来!
· Tinyfox 简易教程-1:Hello World!
< 2025年2月 >
26 27 28 29 30 31 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 1
2 3 4 5 6 7 8

导航

统计

点击右上角即可分享
微信分享提示