昨天回答了博问中的一个问题 —— “HTTP 错误 500.19 - Internal Server Error dotnetcore”,今天在这篇随笔中时候事后诸葛亮地小结一下。

服务器是 Windows Server 2008 R2 ,ASP.NET Core 版本是 2.1 ,错误信息如下:

HTTP 错误 500.19 - Internal Server Error
无法访问请求的页面,因为该页的相关配置数据无效。

出现这个错误是由于 IIS 无法解析 Web.config 中的 xml 配置节点 aspNetCore

<aspNetCore processPath="dotnet" arguments=".\Cnblogs.WebApi.dll" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />

出现这个问题通常是由于没有安装 ASP.NET Core Module ,只要下载安装 Hosting Bundle (比如 Microsoft .NET Core 2.1.6 - Windows Server Hosting)就能解决。

博问中的这个问题奇怪之处是已经安装了 Hosting Bundle ,%windir%\System32\inetsrv 文件中也有 aspnetcore.dll 这个文件,可能是安装过程中出了什么差错,没有成功配置 IIS 。而且卸载并重新安装 Hosting Bundle 也不能解决问题,可能是安装程序认为 IIS 已经配置好,安装时没有重新配置 IIS 。

只能目测检查并手动修复 IIS 的相关配置文件。

对于 HTTP Error 500.19 ,先检查 %windir%\System32\inetsrv\config\schema 文件夹中有没有 aspnetcore_schema.xml 文件,有。

再检查 %windir%\System32\inetsrv\config\applicationHost.config 中有没有 aspNetCore section ,没有,加上:

<section name="aspNetCore" overrideModeDefault="Allow" />

"HTTP Error 500.19" 的问题搞定!

现在的错误变成了“HTTP 错误 500.21”:

HTTP 错误 500.21 - Internal Server Error
处理程序“aspNetCore”在其模块列表中有一个错误模块“AspNetCoreModule"

这是由于 Web.config 中配置了 AspNetCoreModule ,但无法加载

<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
</handlers>

也需要手工修改 IIS 的配置文件来解决。

在 %windir%\System32\inetsrv\config\applicationHost.config 中添加2个配置

1)在 globalModules 中添加

<add name="AspNetCoreModule" image="%SystemRoot%\system32\inetsrv\aspnetcore.dll" />

2)在 modules 在添加

<add name="AspNetCoreModule" />

如果添加上面2个配置后还没解决,在 IIS 站点的“模块”中,点击“配置本机模块”,然后选中 AspNetCoreModule 。

就这样搞定了这个问题!

小结写起来容易沉着冷静,但排查问题时容易急于求成,昨天在折腾 ASP.NET Core 与 Hosting Bundle 的安装方面浪费了不少时间。

最新文章

  1. input标签中button在iPhone中圆角的问题
  2. Java下载文件(流的形式)
  3. Python编码格式的指定方式
  4. Nodejs学习笔记(十)--- 与MongoDB的交互(mongodb/node-mongodb-native)、MongoDB入门
  5. CSS3中的counter和content属性,一些简单的内容显示就不需要JS去实现了
  6. 微信5.4你所不知道的事 X5浏览引擎提速50%-80%
  7. android 检测ListView滚动到的位置
  8. CentOS下通过locale来设置字符集
  9. 通过 SuperObject 生成 json string
  10. oracle 查询dblink的方法
  11. LINQ to Entities 中的查询
  12. HTML事件处理程序
  13. QT + OpenCV + MinGW 在windows下配置开发环境
  14. [PHP]PHP rpc框架hprose测试
  15. 影子节点 shadowDOM
  16. libsecp256k1 与 openssl ecdsa
  17. Win10系统的SurfacePro4如何重装系统-1 SurfacePro专用的PE
  18. 人工智能必须要知道的语义分割模型:DeepLabv3+
  19. Codeforces.392E.Deleting Substrings(区间DP)
  20. P4450 双亲数

热门文章

  1. Write Code As If You Had to Support It for the Rest of Your Life
  2. 【Z10】引水入城
  3. hibernate框架简单步骤
  4. 【前端统计图】hcharts实现堆叠柱形图(与后台数据交互)
  5. 【u021】广义斐波那契数列
  6. 神经进化学的简介和一个简单的CPPN(Compositional Pattern Producing Networks)DEMO
  7. Qt写入unicode编码格式的文本(用QChar写入BOM标记,并且列出所有Qt支持的字符集)
  8. QSettings提供了非常方便的注册表读写
  9. 比较好的Redux和React-Redux学习资料
  10. C++ Primer章课后编程问题