部署Blazor项目到IIS时出现Error 500.19错误——配置页无效
确认ASP.NET Core托管捆绑包已安装
你的web.config里用到了AspNetCoreModuleV2,这是ASP.NET Core托管捆绑包提供的核心模块。如果服务器没装对应版本的托管捆绑包,IIS无法识别该配置项,直接触发500.19错误。去服务器的「控制面板→程序→程序和功能」里检查是否存在「ASP.NET Core 托管捆绑包」,版本要和项目使用的.NET版本完全匹配。检查应用池的.NET CLR版本设置
Blazor这类ASP.NET Core项目的应用池必须设置为无托管代码。如果选了其他.NET CLR版本,IIS会因配置兼容问题报错。操作路径:IIS管理器→找到对应应用池→右键「高级设置」→常规→.NET CLR版本,选择「无托管代码」。补全web.config的handler配置
当前handler里的path和verb为空,虽然语法允许,但部分环境下可能导致请求匹配失败。修改为如下配置尝试:<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />给应用池标识用户添加权限
不要只关注IIS_IUSRS权限,应用池本身的标识用户(比如默认的AppPoolIdentity)也需要发布文件夹的读取、执行权限。右键发布文件夹→「属性」→「安全」→「编辑」→「添加」,输入IIS AppPool\[你的应用池名称],添加后勾选「读取和执行」「列出文件夹内容」「读取」权限。启用stdout日志抓取细节错误
把web.config里的stdoutLogEnabled="false"改成true,手动创建.\logs文件夹(如果不存在)。重启网站后,logs目录下的日志会输出具体错误原因——比如程序启动失败、依赖库缺失等,比500.19的模糊提示更有参考价值。确认IIS的HTTP错误功能已启用
虽然不是直接诱因,但如果服务器未安装「HTTP错误」角色服务,可能看不到完整的错误详情。去服务器管理器→添加角色和功能→Web服务器(IIS)→Web服务器→常见HTTP功能,勾选「HTTP错误」完成安装。
内容的提问来源于stack exchange,提问作者eza

