zl程序教程

您现在的位置是:首页 >  其他

当前栏目

.Net Core 部署IIS

2023-03-31 11:04:06 时间

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

先基本的发布

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

配置发布属性

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

  1. 框架依赖

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

  1. 独立发布

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

服务器安装环境

对应的.NET Core Server环境:

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

上传发布文件

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

在IIS上添加站点

右击=》添加网站

配置网站

配置完确认即可:

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

配置应用程序池

CLR版本选:无托管代码

添加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 模型指的是将应用程序作为独立的进程来运行

验证,大功告成

有疑问和问题的,大家留言