之前有文章写了.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=".logsstdout" />
</system.webServer>
</location>
</configuration>
然通过端口号请求网站已经可以正常访问了