今天迁移 web
服务突然遇到一个 Error
问题,但原有的 web
发布文件是可以正常部署 IIS10
上面运行的,这是啥情况呢?顺便把解决该问题的全过程整理出来,分享给更多遇到类似情况的小伙伴。
由于本地电脑环境迁移,重新换了一个宿主机部署 IIS10
,网站运行提示如下信息:
HTTP
错误 500.19 - Internal Server Error
无法访问请求的页面,因为该页的相关配置数据无效。
详细错误信息:
模块 | IIS Web Core |
---|---|
通知 | 未知 |
处理程序 | 尚未确定 |
错误代码 | 0x8007000d |
配置错误 | |
配置文件 | \\?\E:\IISPublishFiles\sws-snms-service\web.config |
为了证实原有 web
正常运行,此处使用 dotnet self-hosted 自宿主模式运行
,保留个截图~///(^v^)\\~
原因分析及解决方案 =》IIS 网页中INTERNET INFORMATION SERVICES (HTTP) 500.19 - Internet Information Services | Microsoft Docs
按照上面提供的解决方案排查,检查发布文件中的 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=".\SNMS.Services.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" hostingModel="InProcess" />
</system.webServer>
</location>
</configuration>
<!--ProjectGuid: 19ca8b58-6aba-47c6-82f9-cde1e1fa2c9c-->
接下来就继续安装相关的 IIS URL 重写模型 / URL Rewrite =》 URL Rewrite : The Official Microsoft IIS Site
下载该文件后以管理员身份运行安装,如下所示:
等待安装完成
单击完成,然后以管理员身份运行 PowerShell
,执行如下命令,重启 IIS
【URL 重写】模块已成在 `IIS` 中安装,再次尝试运行(部署的)web服务,结果还是出现相同的错误信息,有点郁闷,经过排查,最终发现是 `IIS` 的【模块】没有安装(开发调试正常就搞忘记了😭),由于部署的是 `.net 5.0.4` 版本,选择对应版本下载安装,此处是 `v5.0.4` 的 Hosting Bundle =》Download .NET 5.0 (Linux, macOS, and Windows) (microsoft.com)
安装完成后显示如下,注意这里一定要对应好版本安装,版本不对可能会失败,如下所示:
接下来使用 dotnet --info
命令查看安装的信息,再次重启 IIS
,如下所示:
最后运行 web
服务,可以正常运行啦,如下所示:
以上就是整个过程的处理方案,希望能帮助到更多的小伙伴 ~///(^v^)\\~