ASP.NET Core部署在IIS上

1.下载安装 Windows Server Hosting ,它的作用是,让IIS有反向代理功能(Asp.Net Core Module负责反向代理工作),将请求转发到 Kestrel
这里写图片描述

2.发布网站,有两种方法:用CLI dotnet publish 命令发布,也可以通过Visual Studio发布
在发布的文件夹中查看web.config文件,把 stdoutLogEnabled=”true” ,然后新建一个 logs 文件夹,因为web.config设置了日志的输出目录 stdoutLogFile=”.\logs\stdout”,而发布时不会生成logs文件夹,需要手动创建。
这里写图片描述

3.在IIS中部署,和以前发布一样,改变的是应用程序池不再是.NET CLR,而是选择无托管代码。再浏览发布的网站。。
这里写图片描述

4.结果访问报错了。。报“An error occurred while starting the application”,然后在logs文件夹下查看日志,告诉我缺少文件,导致报了这个错误。因项目中我启用了xml注释,所有的注释会生成到一个xml文件中,而发布的时候不会把这个xml文件输出到发布文件夹中,手动复制进去就可以正常访问了。
这里写图片描述