我有一个 ASP.NET MVC Web 应用程序,它在四个工作进程(网络花园)配置下运行良好,并使用 ASP.NET 状态服务来管理传入会话。
会话状态在 Web.config 配置文件中配置如下:
<system.web>
<sessionState mode="StateServer" stateConnectionString="tcpip=127.0.0.1:42424" timeout="360" />
</system.web>
web.config 配置文件中没有配置 machineKey,并且 ASP.NET State 服务使用默认的网络服务帐户运行。
其他 Web 服务器(这是一个 VMWare 虚拟机)详细信息如下:
- IIS 8.5.9600.16384
- Windows Server 2012 R2 标准 64 位
- 48GB 内存
关于应用程序池配置,需要强调的是:
- 启用 32 位应用程序
- 集成模式和按需启动
- 加载用户配置文件已启用
- 空闲超时操作设置为挂起
- 启用快速故障保护
- 禁用回收和禁用所有限制(设置为 0)
此外,应用程序池一直使用自定义域管理员帐户进行配置,但由于安全原因,目前已更改为使用自定义非管理员帐户。
更改应用程序池帐户后,Web Garden 开始表现不稳定:用户被随机踢出。他们收到 403 Unauthorized 和 404 Not Found http 错误,甚至我记得看到 503 Service Unavailable。
可能是什么原因?
2020 年 11 月 11 日更新: