windows server 2012 R2里IIS配置.net core2.1遇到的坑

  • A+
所属分类:.NET技术
摘要

首先刚接触.net core不久,在本地也是简单写点测试程序,没遇到过什么问题,感觉还行,最近朋友搞了个asp.net core2.1的程序,让我给他服务器配置一下,我想这都跨平台了有什么难的吗?拿来我先在本地配置下试试,我用的是win10,自己装了vs2019,可以说环境的坑排除了不少,接着网上搜了下,在IIS里配置.net core的教程,照着上面的做很快就配置好,主要就三点:

首先刚接触.net core不久,在本地也是简单写点测试程序,没遇到过什么问题,感觉还行,最近朋友搞了个asp.net core2.1的程序,让我给他服务器配置一下,我想这都跨平台了有什么难的吗?拿来我先在本地配置下试试,我用的是win10,自己装了vs2019,可以说环境的坑排除了不少,接着网上搜了下,在IIS里配置.net core的教程,照着上面的做很快就配置好,主要就三点:

一、下载安装 dotnet-hosting-2.1.22-win.exe ,安装后IIS > 模块 中会出现AspNetCoreModule,这个东西是.net core能在IIS运行的前提

2.1之前的是AspNetCoreModule

2.2之后的是AspNetCoreModuleV2

windows server 2012 R2里IIS配置.net core2.1遇到的坑

微软资料:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/iis/?view=aspnetcore-2.1#install-the-net-core-hosting-bundle

各版本.net core下载地址:https://dotnet.microsoft.com/download/dotnet-core

二、下载安装SDK和rumtime包:

dotnet-sdk-2.1.810-win-x64.exe

aspnetcore-runtime-2.1.22-win-x64.exe

三、IIS线程池配置:

.net clr版本设置为:无托管代码

windows server 2012 R2里IIS配置.net core2.1遇到的坑

这三步搞完,浏览运行起来了,心情大好,看起来也没什么难的嘛,感觉比之前的.net framework还方便啊,不愧是最新的跨平台架构,接着搞正式的服务器了!然而,高兴的太早了,噩梦刚刚开始!

正式的服务器是windows server 2012 R2,先按照上面的三点搞完之后,兴冲冲的打开浏览,what?居然报错:HTTP Error 502.5 - Process Failure

windows server 2012 R2里IIS配置.net core2.1遇到的坑

先点开他给出的链接,看了感觉没啥用啊,也许是我不会找;遇事不决问搜索,继续搜索,网友给出的是确保安装了以下三点

  • Microsoft Visual C++ 2015 Redistributable
  • .NET Core Windows Server Hosting bundle
  • 对应版本的.Net Core SDK

后面两个都装了,那就看看第一个Microsoft Visual C++ 2015 Redistributable是个什么鬼吧

下载地址:https://www.microsoft.com/en-us/download/details.aspx?id=53840

下载完后安装,开始挺顺利,到结尾的时候一直卡在 正在处理window81—×64,

windows server 2012 R2里IIS配置.net core2.1遇到的坑

然后我点开控制面板 > 程序看到Microsoft Visual C++ 2015 Redistributable已经有了,我就把一直卡的这个窗口关了,然后浏览网站程序,还是502.5错误,一脸懵逼!

我想着可能是我心急关早了,没装好,但明明安装程序列表已经有了啊,不甘心搜索了下“正在处理window81—×64

我擦,还真有问题,看了相关资料,需要安装KB2999226补丁

下载地址:https://support.microsoft.com/en-us/help/2999226/update-for-universal-c-runtime-in-windows

下载好补丁后,打开,提示“只允许运行一个wusa.exe实例”,又是什么鬼啊!啊!

windows server 2012 R2里IIS配置.net core2.1遇到的坑

搜索!解决方法:打开任务管理器,找到windows update进程,关闭它!

接着装补丁!打开,程序自动搜索了老半天啊,提示“此更新不适用于你的计算机”!!!二脸懵逼!!!下的补丁明明是对应系统版本的!有点抓狂!有点不想搞了!

想着看看.net core到底装好了没,别是没装好!打开cmd,输入dotnet,敲回车,提示“api-ms-win-crt-runtime-l1-1-0.dll 丢失”!三脸懵逼啊!!!又是什么鬼!

windows server 2012 R2里IIS配置.net core2.1遇到的坑

 继续搜索,发现还是Microsoft Visual C++ 2015 Redistributable没有装好!还是需要装KB2999226补丁!

但是这个补丁刚才装不上啊!蓝瘦啊!捋捋思路,是不是这个补丁装之前还要装其他的东西?赶紧看看刚才下载的页面,确实有!需要先安装KB2919355补丁!

windows server 2012 R2里IIS配置.net core2.1遇到的坑

 哪就接着下补丁!下载地址:https://support.microsoft.com/en-us/help/2919355/windows-rt-8-1-windows-8-1-windows-server-2012-r2-update-april-2014

点开一看,我滴个乖乖!690M!好嘛!搞搞搞!下载及安装将近三个小时!

安装完后重启,重启之后,远程连接,账号密码输进去,回车,没问题,但怎么就是出不来远程画面呢,几秒种后远程连接直接就没了!此时我的内心竟然毫无波澜!!!

我想可能是系统在开机前更新吧!已经深夜十一点多了!想想睡觉吧!明天再搞!如果明天还进不去,那八成是系统打补丁打卒了,哈哈哈!

第二天上午十点,心平气和的打开远程连接,输入账号密码,回车,几秒后,呦!进来了!没问题!看起来猜的没错!

接着装补丁KB2999226,好家伙!一次成功!然后再装Microsoft Visual C++ 2015 Redistributable,玩美无阻!打开cmd,输入dotnet,回车,ok没问题!

然后打开网站网址,心里默默祈祷...两秒后,网站画面顺利出现!

此次,windows server 2012 R2服务器IIS配置.net core,采坑结束!

话说微软自己的服务器系统怎么配置个.net core这么难呢?!坑多的要命啊!