“ 记录一下入坑asp.net Core的踩坑记录,避免以后走重复的坑”
好记性不如烂笔头
01
—
经过笨比的深入探索后发现,好多小伙伴脱离IIS部署,毕竟 Docker配合Nginx的使用是现在时下的主流以及热门的话题吧。不过应该也有不少习惯部署在IIS上的,像我这种菜鸟不出意料的踩了好多坑,现记录分享一下。
参考官方资料 https://docs.microsoft.com/zh-cn/dotnet/core/deploying
02
—
创建项目并发布打包
项目的创建 可以直接略过,可以直接创建一个空的asp.net core Api项目,里面会有一个内置的API案例,可以正常访问的。
发布的步骤可以直接按照下面截图的形式去操作。
然后就可以像以往部署Asp.net的webForm或者Mvc项目一样部署到IIS里面了,当然不出意外的话是会出现各种异常。
03
—
异常汇总以及解决方案
1、错误码---500.19
原因 ①:项目的文件目录权限问题导致,
②: 如果还是报这个错误,应该就是 未安装 windows 服务器托管,打不开前 项目的 模块 选项
解决方案:一、如果是原因1导致,最直接的方法右键该目录 给予 everyOne 可修改或者全权 限就可以了。二、需要安装项目匹配的 服务器托管( windows hosting ) 链接地址 https://dotnet.microsoft.com/download/dotnet-core/3.1
其他的错误码,有遇到过404异常,应该也是未安装AspNetCoreModuleV2导致的,如果你注意的话,会发现在打包的目录下会有exe可执行文件,也可以选择不寄宿在IIS里面发布,可以独立发布,监听的端口可以在配置文件里面配置。
也可以命令运行 发布服务,注意在该目录下运行或者指定到该位置下
dotnet xxx.dll
也是可以正常运行的,如果IIS部署失败,可以尝试这两种是否可行,如果可以的话,就排除了代码和项目的问题,问题点就集中在IIS的部署上面了。
笨比分享一下我发布时遇到的问题,在本地电脑发布的时候有遇到权限的问题,授权后就可以了。因为本地电脑之前就安装了相关的模块。在发布到服务器(阿里的ecs)上时卡了好久才解决,因为服务器是windows Server2008R2 英文版的系统,以笨比的初中英语水准出错也是情理之中。首先需要安装或者配置IIS,可自行百度教程。 部署完项目后,一直访问不了接口,各种该装的都装了,还是不行。最后重新安装了一下asp.net core 运行时、捆绑运行程序包、.net Core SDK以及.net Core Runtime.注意版本和项目版本要统一才可以正常访问接口。至于两个运行时的区别暂时还不了解。反正是历经万险才部署成功,虽然还有很多疑问,好歹可以正常运行了。
唉、要努力学习英语咯,不然有些坑是避免不了要踩的。