.NET Razor网站部署至IIS(Windows Server 2022)遇500.19错误求助
解决IIS部署.NET Razor网站时的HTTP Error 500.19 (0x8007000d)错误
我用.NET Razor搭建的网站部署到Windows Server 2022的IIS服务器后,一直报HTTP Error 500.19 - Internal Server Error错误,错误代码0x8007000d,提示web.config配置数据无效。已确认物理路径指向正确的.dll目录,尝试过修改应用程序池权限、给IIS_IUSRS授予完全权限、禁用默认站点等操作,问题仍未解决。
错误详情
HTTP Error 500.19 - Internal Server Error The requested page cannot be accessed because the related configuration data for the page is invalid. Detailed Error Information: Module IIS Web Core Notification Unknown Handler Not yet determined Error Code 0x8007000d Config Error Config File \\?\C:\Users\Administrator\Desktop\XXXWEBSITENAMEXXX\web.config Requested URL http://192.168.0.85:80/ Physical Path Logon Method Not yet determined Logon User Not yet determined
web.config内容
<?xml version="1.0" encoding="utf-8"?> <configuration> <location path="." inheritInChildApplications="false"> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments="\.\WEBSITENAME.dll" stdoutLogEnabled="false" stdoutLogFile="\.\logs\stdout" hostingModel="inprocess" /> </system.webServer> </location> <system.web> <authorization> <allow users="*" /> </authorization> <roleManager enabled="true" /> </system.web> </configuration>
服务器已安装的.NET运行环境
.NET SDKs installed: 6.0.423 [C:\Program Files\dotnet\sdk] .NET runtimes installed: Microsoft.AspNetCore.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App] Microsoft.NETCore.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App] Microsoft.WindowsDesktop.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
针对性解决方案
1. 修复web.config路径格式错误
web.config中<aspNetCore>节点的路径参数格式有误,导致IIS无法解析:
- 将
arguments="\.\WEBSITENAME.dll"修改为arguments=".\WEBSITENAME.dll"(移除开头多余的反斜杠) - 将
stdoutLogFile="\.\logs\stdout"修改为stdoutLogFile=".\logs\stdout" - 建议开启
stdoutLogEnabled="true",方便生成日志排查后续问题
修改后的节点示例:
<aspNetCore processPath="dotnet" arguments=".\WEBSITENAME.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" hostingModel="inprocess" />
2. 确认AspNetCoreModuleV2模块已安装
错误代码0x8007000d常见原因是IIS缺少ASP.NET Core托管模块:
- 打开服务器管理器 → 添加角色和功能,检查是否安装了
ASP.NET Core 6.0 Runtime (IIS Hosting Bundle) - 若未安装,安装对应版本的托管捆绑包(需与.NET 6版本匹配)
3. 调整应用程序池设置
- 应用程序池的**.NET CLR版本需设置为无托管代码**(ASP.NET Core无需IIS托管代码支持)
- 确认应用程序池标识(如ApplicationPoolIdentity)对网站目录拥有读取、执行权限
4. 移除冗余配置节点
web.config中的<system.web>节点属于传统ASP.NET配置,ASP.NET Core Razor网站无需该节点,移除后可避免IIS解析冲突:
<!-- 移除以下冗余配置 --> <system.web> <authorization> <allow users="*" /> </authorization> <roleManager enabled="true" /> </system.web>
内容的提问来源于stack exchange,提问作者jfc9419
相关产品推荐
相关产品推荐

