Asp.net Web Forms应用部署到IIS后无法正常运行该如何解决?
IIS部署ASP.NET Web Forms无法运行的解决方案
1. 安装ASP.NET运行时组件
Windows Server 2016默认不会自动安装ASP.NET Framework相关的IIS处理组件,缺失的情况下IIS会将站点识别为静态文件站点,不会处理aspx请求:
- 打开服务器管理器,依次点击「管理」→「添加角色和功能」
- 到「服务器角色」步骤,展开「Web服务器(IIS)」→「应用程序开发」,勾选ASP.NET 4.6(如果项目基于.NET Framework 3.5开发则勾选ASP.NET 3.5),依赖组件会自动同步勾选
- 完成安装后执行命令
iisreset重启IIS服务
2. 配置应用程序池
- 如果你将项目部署为独立站点:选中站点对应的应用程序池,设置*.NET CLR版本为v4.0.30319*(.NET Framework 3.5项目选v2.0),托管管道模式优先选「集成」,老版本项目兼容问题可切换为「经典」
- 如果你将项目部署为现有站点下的子应用:右键对应的虚拟目录,选择「转换为应用程序」,绑定上述配置的对应.NET版本的应用程序池
- 确认应用程序池的运行标识对站点根目录拥有读取、执行权限
3. 配置默认文档
IIS需要识别首页文件名才能无路径访问:
- 选中目标站点,在功能视图打开「默认文档」
- 确认你的项目首页文件名(如
Default.aspx、Index.aspx)在列表中,如果不在,点击右侧「添加」输入文件名,之后将其移动到列表顶部优先级最高
4. 校验web.config配置
避免站点配置错误导致运行失败:
- 临时开启错误提示方便排查,在
web.config的<system.web>节点下添加配置:
<customErrors mode="Off" /> <compilation debug="true" />
- 确认没有异常的权限限制配置,比如
<authorization>节点未错误配置拒绝匿名访问规则、连接字符串等服务配置和生产环境匹配
5. 验证运行
配置完成后再次执行iisreset,直接访问站点域名/IP,若仍报错可尝试直接访问首页全路径(如http://你的地址/Default.aspx)根据返回的具体错误针对性排查:
- 直接访问aspx路径返回404:重新检查ASP.NET运行时组件是否安装正确
- 返回50X错误:根据页面提示的具体错误信息修正代码或配置问题
内容的提问来源于stack exchange,提问作者Sumit Datta
相关产品推荐
相关产品推荐

