IIS中因web.config的sessionState配置引发服务器错误
ASP.NET allowDefinition='MachineToApplication' 配置错误解决指南
错误信息详情
'/' 应用程序中的服务器错误。
配置错误
描述:处理服务此请求所需的配置文件时发生错误。请查看下面的具体错误详情并适当修改配置文件。
分析器错误消息:在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。此错误可能是由于IIS中的虚拟目录未配置为应用程序导致的。
源错误:
服务器上发生应用程序错误。出于安全原因,此应用程序的当前自定义错误设置阻止远程查看应用程序错误的详细信息,但可在本地服务器机器上的浏览器中查看。
源文件:C:\inetpub\wwwroot\FAMS\fams\web.config 行:51
版本信息:Microsoft .NET Framework 版本:4.0.30319; ASP.NET 版本:4.8.4682.0
关联代码行(web.config 第51行)
sessionState timeout="480"
分步解决方案
1. 验证IIS目录的应用程序身份
- 打开IIS管理器,定位到
C:\inetpub\wwwroot\FAMS\fams对应的目录 - 右键点击该目录,选择转换为应用程序
- 在弹窗中确认应用程序池关联的是
.NET Framework v4.0版本,点击确定
2. 检查web.config的层级合法性
sessionState属于只能在应用程序根级别配置的节点,若当前目录是其他应用程序的子目录,需:- 将
sessionState配置移至父级应用程序的web.config - 或移除当前子目录web.config中的该节点
- 将
- 确保当前目录是IIS中独立注册的应用程序根,而非嵌套在其他应用程序下
3. 确认应用程序池配置正确性
- 检查对应应用程序池的.NET Framework版本设置为
v4.0(与错误中的框架版本匹配) - 验证应用程序池的运行身份对目标目录拥有读写权限
4. 清理ASP.NET临时文件并重启服务
- 删除路径
C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files下对应站点的临时文件 - 执行命令行指令
iisreset重启IIS服务
5. 修复web.config语法与节点完整性
- 确保
sessionState节点正确嵌套在<system.web>标签内,标准格式如下:
<system.web> <sessionState timeout="480" /> </system.web>
- 检查web.config是否存在未闭合标签、语法错误等问题
内容的提问来源于stack exchange,提问作者Vanita pandya
相关产品推荐
相关产品推荐

