Asp Core部署到IIS服务器

之前有文章写了.Asp Core Kestrel服务器可以独立运行在linux下,也可以部署到Docker上面通过容器管理,当然也可以直接部署到IIS中

一:安装环境

1)首先需要在服务器安装对应环境的运行时

2)安装完成后控制面板=》程序中会有如下程序

Asp Core部署到IIS服务器

3)然后打开IIS新建一个网站,然后点击查看模块

Asp Core部署到IIS服务器

4)如果先前.net core 运行时环境安装成功,IIS也还会显示对应的AspNetCoreModule,如图:

Asp Core部署到IIS服务器

二:代码配置

1)main函数启动代码如下:

因为我的web程序会有大文件上传,所以我这边也配置了最大上传限制,不需要的可以去掉

        public static void Main(string[] args)
{
CreateWebHostBuilderIIS(args).Build().Run();
} public static IWebHostBuilder CreateWebHostBuilderIIS(string[] args) =>
WebHost.CreateDefaultBuilder(args)
.UseKestrel(options =>
{
options.Limits.MaxRequestBufferSize = long.MaxValue;
options.Limits.MaxRequestLineSize = int.MaxValue;
options.Limits.MaxRequestBodySize = long.MaxValue;
})
.UseIIS()
.UseStartup<Startup>();

三:发布配置

右键项目=》发布,显示如下配置文件

Asp Core部署到IIS服务器

四:IIS配置

1)在IIS新建一个网站

2)将发布打包好的文件复制到新建好的IIS站点下

3)然后将对于网站的应用程序池设置为无托管代码

Asp Core部署到IIS服务器

五:日志查看

如果有异常需要查看日志的可以修改打包后生成的web.config文件,将stdoutLogEnabled设置为true,然后在发布项目的目录下我们就可以查看请求和启动相关日志了

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<location path="." inheritInChildApplications="false">
<system.webServer>
<handlers>
<add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModuleV2" resourceType="Unspecified" />
</handlers>
<aspNetCore processPath="dotnet" arguments=".\QueryCarSys.dll" stdoutLogEnabled="true" stdoutLogFile=".\logs\stdout" />
</system.webServer>
</location>
</configuration>

然通过端口号请求网站已经可以正常访问了

Asp Core部署到IIS服务器

六:参考文档

官方文档

官方常规错误参照链接

上一篇:解决ASP.NET Core部署到IIS,更新项目"另一个程序正在使用此文件,进程无法访问"


下一篇:救援(BFS)