ASP.NET Core发布到Windows环境下的IIS站点,需要安装从IIS到Kestrel server的反向代理。如果没有安装.NET Core Windows Server Hosting,在访问站点的时候会报500的错误。
注意,在服务器的IIS上发布站点需要.NET Core Windows Server Hos即可,不需要单独安装NET Core SDK的。
下载地址如下:
安装界面
安装之后要重启IIS服务:
可以直接在IIS管理器上直接操作,也可以用命令行的方式重启:
1.net stop was /y
2.net start w3svc
将发布之后的程序复制到对应的站点下:
然后再IIS上面直接发布站点程序即可,IIS站点发布的方法不赘述。IIS站点的对应的应用程序池-基本设置,要设置为无托管代码。因为.core 不依赖framework的运行时runtime。
如果顺利的话,就可以直接访问刚发布的站点。如果遇到问题,可以看下面问题解决参考。
========================
一般常见的错误:
HTTP Error 502.5 - Process Failure
Common causes of this issue:
-
The application process failed to start
-
The application process started but then stopped
-
The application process started but failed to listen on the configured port
Troubleshooting steps:
-
Check the system event log for error messages
-
Enable logging the application process' stdout messages
-
Attach a debugger to the application process and inspect
【错误排除指导】
1.首先,站点的访问权限要确保没问题。
2. 确保已经安装.NET Core Windows Server Hosting,而且确保重启IIS或者重启服务器。成功安装之后可以在 IIS中的模块要已经存在AspNetCoreModule 中查看到。
3.确保在CMD的命令行中执行dotnet不会报错。
4.IIS站点的对应的应用程序池-基本设置,要设置为无托管代码
5..确保发布程序代码的core版本跟server hosting的 版本是对应,否则是有可能出现这个错误的。