.Net Core 部署IIS

  • .Net Core 部署IIS已关闭评论
  • 225 次浏览
  • A+
所属分类:.NET技术
摘要

我相信很多人看了其他的贴子,都没有成功部署,因为里面有很多暗坑。接下来博主就一步一步给大家讲明白,带领大家部署

我相信很多人看了其他的贴子,都没有成功部署,因为里面有很多暗坑。接下来博主就一步一步给大家讲明白,带领大家部署

先基本的发布

  1. 操作:右击web项目的《发布》按钮。选文件

.Net Core 部署IIS

配置发布属性

  部署模式,建议选框架依赖,且安装对应的运行时框架,可共享系统级版本的 .NET Core,如果框架依赖部署不行,可以尝试:独立。

  1. 框架依赖

在包含框架依赖的情况下,应用程序会依赖于所选 .NET Core 运行时版本。这意味着运行应用程序之前必须先安装正确的 .NET Core 运行时。框架依赖项是一种更轻量级的发布选项,因为它只包含应用程序本身的文件,而不包括 .NET Core 运行时文件。

  1. 独立发布

在独立发布的情况下,应用程序会包含所需的 .NET Core 运行时文件,这意味着在运行应用程序时不需要安装 .NET Core 运行时。这种发布选项会使应用程序的大小更大,因为它包含了 .NET Core 运行时文件,但它可以使应用程序更易于部署和更可移植,因为它不需要依赖于 .NET Core 运行时的安装。

.Net Core 部署IIS

服务器安装环境

对应的.NET Core Server环境:

  1. 安装.NET Core Windows Server Hosting
  2. 查看模块安装是否成功,安装完成后再模块中会显示AspNetCoreModuleV2模块
  3. 如果没有,可以尝试右侧的操作栏,进行添加/编辑

.Net Core 部署IIS

.Net Core 部署IIS

上传发布文件

把文件上传到服务器上,放到自己指定的目录

在IIS上添加站点

右击=》添加网站

.Net Core 部署IIS

配置网站

配置完确认即可:

    1. 指定网站名称
    2. 指定网站承载程序的路径,也就是我们,第3步骤,的路径
    3. 指定IP+端口

.Net Core 部署IIS

配置应用程序池

CLR版本选:无托管代码

.Net Core 部署IIS

添加web.config

最后一步,在我们程序目录下添加web.config,来告诉IIS我们启动的程序集,参数名:arguments=".yiri.web.dll" 都是用的相对路径,里面还能拼接参数

<?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=".yiri.web.dll" stdoutLogEnabled="false" stdoutLogFile=".logs" hostingModel="inprocess" />     </system.webServer>   </location> </configuration>

下面给大家解释一下配置含义:

configuration:这是根元素,用于表示整个配置文件。 location:指定特定的目录,其内部的配置应该按照 location 中的规则进行处理。 path:指定 location 的路径,"." 表示当前目录。 inheritInChildApplications:指定在子应用程序中是否应该继承此配置。如果设置为 true,则子应用程序将继承此配置;如果设置为 false,则子应用程序将不会继承此配置。 system.webServer:指定应用程序使用的 IIS 版本。 handlers:指定用于处理请求的处理程序。 add:添加一个处理程序。 name:处理程序的名称。 path:处理程序要处理的请求的 URL 路径。 verb:处理程序要处理的 HTTP 动词。 modules:处理程序要使用的 IIS 模块。 resourceType:处理程序要处理的请求的资源类型。 aspNetCore:指定 ASP.NET Core 应用程序的设置。 processPath:应用程序的主执行文件路径。 arguments:传递给应用程序的命令行参数。 stdoutLogEnabled:是否启用应用程序的标准输出日志记录。 stdoutLogFile:标准输出日志文件的路径。 hostingModel:应用程序的托管模型,可以是 inprocess 或 outofprocess。inprocess 模型指的是将应用程序作为 IIS 工作进程的一部分来运行,outofprocess 模型指的是将应用程序作为独立的进程来运行

验证,大功告成

.Net Core 部署IIS