Asp Core部署到IIS服务器

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

一:安装环境

1)首先需要在服务器安装对应环境的运行时
2)安装完成后控制面板=》程序中会有如下程序

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

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

二:代码配置

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>();

三:发布配置

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

四:IIS配置

1)在IIS新建一个网站
2)将发布打包好的文件复制到新建好的IIS站点下
3)然后将对于网站的应用程序池设置为无托管代码

五:日志查看

如果有异常需要查看日志的可以修改打包后生成的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>

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

六:参考文档

官方文档
官方常规错误参照链接

猜你喜欢

转载自www.cnblogs.com/ruanraun/p/aspcoreiis.html