.NET网站报错HTTP 错误 500.21 - Internal Server Error解决方法
2024-12-08
119 0HTTP 错误 500.21 - Internal Server Error 是 .NET 网站在部署到 IIS 服务器时的一个常见错误,通常是由于 ASP.NET 未正确注册到 IIS 中所致。以下是解决方法的详细步骤:
1. 确认错误原因
该错误通常会附加以下信息:
"Handler 'PageHandlerFactory-Integrated' has a bad module 'ManagedPipelineHandler' in its module list."
表示 .NET Framework 相关组件未在 IIS 中正确注册。
2. 检查 IIS 配置
确保 IIS 已启用相关功能:
打开 控制面板 > 程序和功能。
点击左侧的 启用或关闭 Windows 功能。
展开 Internet 信息服务 (IIS) > 万维网服务 > 应用程序开发功能。
勾选以下选项:
- ASP.NET(根据项目需求选择 ASP.NET 4.8 或 ASP.NET 3.5)
- .NET 扩展性
- ISAPI 扩展
- ISAPI 筛选器
点击 确定。
3. 重新注册 ASP.NET 到 IIS
在管理员模式下运行命令提示符 (CMD) 并执行以下命令:
针对 .NET Framework 4.x
%windir%\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis.exe -i
针对 .NET Framework 3.5
%windir%\Microsoft.NET\Framework\v2.0.50727\aspnet_regiis.exe -i
注意:
如果使用的是 64 位系统,请将 Framework 替换为 Framework64。
上述命令会重新注册 ASP.NET 并更新 IIS 配置。
4. 检查应用程序池设置
确保应用程序池的配置正确:
打开 IIS 管理器。
选择目标站点所在的 应用程序池。
确保:
托管管道模式 设置为 集成。
.NET CLR 版本 设置为目标网站使用的 .NET 版本(如 .NET CLR 版本 v4.0 或 v2.0)。
5. 检查 Web.config 配置
确认 Web.config 中没有冲突的模块配置:
找到以下节点:
<system.webServer>
<handlers>
<!-- 确保此处没有冗余或错误的模块配置 -->
</handlers>
</system.webServer>
如果项目是 ASP.NET Core,请确保已安装 ASP.NET Core 托管包。
6. 安装 .NET Core 或 .NET Hosting Bundle(如适用)
对于 ASP.NET Core 网站:
下载并安装 ASP.NET Core Hosting Bundle,可从 Microsoft 官方下载页面 获取。
安装后运行以下命令更新 IIS:
iisreset
7. 重启 IIS
最后,重启 IIS 并测试站点:
iisreset
通过以上步骤,HTTP 错误 500.21 应该能顺利解决。如果问题仍然存在,请检查系统日志或 IIS 日志获取更多信息(日志通常位于 %SystemDrive%\inetpub\logs\LogFiles)。
您可能感兴趣:
阿里云 云服务器 99元1年 2核2G 3M固定带宽 续费与新购同价
领取 通义灵码 免费使用资格 兼容 Visual Studio Code、Visual Studio、JetBrains IDEs 等主流编程工具, 为你提供高效、流畅、舒心的智能编码体验!