今天在IIS上部署.NET Core项目的时候突然出现了502的问题,之前的时候是正常运行的.net sdk等环境都是正常的。
很多同学出现502的问题都是因为.Net Core SDK没有安装,或者版本安装错误,所以各位同学先检查一下服务器上的环境是否都安装正确在检查错误,顺藤摸瓜。
502大多数问题很简单,就是IIS指向的ASP.NET Core应用因为各种原因没有正常启动
服务器的环境是windows2008
首先用dotnet 命令在项目根目录下直接运行你的Web程序,例如 dotnet xxxWeb.dll
正常启动:
.NET Core SDk问题:
如果出现这种说明你的运行环境是有问题的,先去安装一下.NET SDK,安装时注意x64和x86的区别
这时你访问5000端口先看一下程序本身有没有错误,如果页面正常我们打开IIS的系统日志,如果有错误的的话错误的信息会在命令行中显示出来,我们可以根据命令行中的提示来找到错误信息,再者我们可以打开IIS的错误日志
在Web.Config找到 <aspNetCore processPath=”dotnet” arguments=”.\CZKJ.GBRS2.WebMVC.dll” forwardWindowsAuthToken=”false”
stdoutLogEnabled
=”true” startupTimeLimit=”3600″ requestTimeout=”23:00:00″
stdoutLogFile
=”.\log\stdout” />
把
stdoutLogEnabled
改成true,
stdoutLogFile
是你日志文件的路径其中
stdout
是你日志文件头,理论上直接这么打就可以用,但是你需要在项目目录下自己穿件log文件夹
然后再次用IIS访问程序错误日志就会打出来
代码在哪里报的错就出来了
我这次遇到的问题是BuildWebHost(args).Run();
出了问题,后来我看了一下Web Config文件发现
arguments
里面多了一堆文字,和报错信息中的很类似,删掉之后BUG完美解决