IIS 部署WEBAPI

ASP.NET Core不再是由IIS工作进程(w3wp.exe)托管,而是使用自托管Web服务器(Kestrel)运行,IIS则是作为反向代理的角色转发请求到Kestrel不同端口的ASP.NET Core程序中,随后就将接收到的请求推送至中间件管道中去,处理完你的请求和相关业务逻辑之后再将HTTP响应数据重新回写到IIS中,最终转达到不同的客户端(浏览器,APP,客户端等)。而配置文件和过程都会由调整,中间最重要的角色便是AspNetCoreModule,它是其中一个的IIS模块,请求进入到IIS之后便立即由它转发,并迅速重定向到ASP.NET Core项目中,所以无需设置应用程序池来托管代码,它只负责转发请求而已。

开发工具:VS2017 + .NET CORE 2.1

 采用本地文件系统发布,部署模式建议选择“独立”,选择框架依赖时,访问是可能出现502错误,发布后将文件拷贝至服务器端

 

服务器:IIS

在IIS上添加应用程序,物理路径指向WEBAPI所在的文件夹

 调整对应的应用程序池

 

 服务器端IIS需支持AspNetCoreModule模块,若无此模块,可下载.net core sdk 及 .NET Core Hosting Bundle.

 

 发布后会产生web.config文件

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <location path="." inheritInChildApplications="false">
    <system.webServer>
      <handlers>
        <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" />
      </handlers>
      <aspNetCore processPath=".\WebApi.exe" stdoutLogEnabled="false" stdoutLogFile=".\logs\stdout" />
    </system.webServer>
  </location>
</configuration>
<!--ProjectGuid: 74bf046f-685d-492b-86df-bbf645da64d3-->

可参考:https://learn.microsoft.com/en-us/aspnet/core/host-and-deploy/iis/?view=aspnetcore-8.0

 

posted @ 2024-04-19 13:40  kang09  阅读(11)  评论(0编辑  收藏  举报