.NetCore2.1踩坑之路

序言

上一篇文章本来想写一下学.NetCore遇到的问题,但是想象很丰满,现实却很骨感,项目搭建了一半进行不下去了。因为VS2015压根就不支持.NetCore3.1版本,后面发现别说3.1版本,它连2.0版本都不支持,因此只能重新搭建环境了,VS换成Microsoft Visual Studio Professional 2019版本了,需要的自己百度吧。
上一篇文章链接

环境简介

环境这次搭建基本没有遇到问题,因为安装完VS2019后,.NetCore自动就给安装3.1和2.1的版本,VS环境的插件也是自带的,简直不要太爽。强烈建议安装这个Microsoft Visual Studio Professional 2019,学习的话试用一个月估计够了。安装那些内容根据自己的需求来就可以了,我安装的内容直接看下面的图片吧。
.NetCore2.1踩坑之路
.NetCore2.1踩坑之路

.NetCore部署IIS遇到的问题

环境搭建好了,直接新建一个API项目,框架选择.NetCore2.1,直接F5运行没有任何问题。继续下一项发布一下,部署IIS试一下吧,发生如下错误

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

.NetCore2.1踩坑之路
不过直接dotnet APIProject.dll是可以的,如下图.NetCore2.1踩坑之路
这就证明代码是没有问题的,百度搜了一下.NetCore如何配置IIS,看了好多篇文章,最后点到了官方的文档,链接:Host ASP.NET Core on Windows with IIS

直接按照里面的文档配置就可以了,不过还需要安装.NET Core Hosting Bundle 就是下图的主机捆绑包。\color{#FF0000}{不要点里面的直接下载!!!}
.NetCore2.1踩坑之路
安装包链接:dotnet-hosting-2.2.0-win.exe
.NetCore\color{#FF0000}{注意主机捆绑包一定要下载和.NetCore版本一致的,后果下面讲}
按照上面的步骤配置好IIS,安装dotnet-hosting之后,界面应该就可以直接出来了,反正我的就没有问题了。

下面我们讲一下上面提到的dotnet-hosting和.NetCore版本一致的问题,如果安装的版本不一致,就会出错,我当时直接点的上面提到的直接下载,出现下面的问题。
2. HTTP 错误 500.21 - Internal Server Error
处理程序“aspNetCore”在其模块列表中有一个错误模块“AspNetCoreModule”
.NetCore2.1踩坑之路
这里讲一下,那个直接下载的按钮下载的是dotnet-hosting3.1.3版本,可能是我搜的不对。就这个问题我网上都了好长时间,试了各种方案都不行。最后实在头疼的不行了,想了想是不是需要版本一致,因为之前搞的环境就是版本不一致出过问题,下载了一个dotnet-hosting2版本(链接在上面),安装完一刷新网页,没有立即出现错误,等了几秒界面刷出来,头也不疼了。

最后吐槽一下微软,高版本不兼容低版本,这个设定我也是醉了。

这篇就到这里了,计划明天写一下.NetCore搭建项目遇到的坑。