.Net Core 部署IIS
2023-03-31 11:04:06 时间
我相信很多人看了其他的贴子,都没有成功部署,因为里面有很多暗坑。接下来博主就一步一步给大家讲明白,带领大家部署
先基本的发布
- 操作:右击web项目的《发布》按钮。选文件
配置发布属性
部署模式,建议选框架依赖,且安装对应的运行时框架,可共享系统级版本的 .NET Core,如果框架依赖部署不行,可以尝试:独立。
- 框架依赖
在包含框架依赖的情况下,应用程序会依赖于所选 .NET Core 运行时版本。这意味着运行应用程序之前必须先安装正确的 .NET Core 运行时。框架依赖项是一种更轻量级的发布选项,因为它只包含应用程序本身的文件,而不包括 .NET Core 运行时文件。
- 独立发布
在独立发布的情况下,应用程序会包含所需的 .NET Core 运行时文件,这意味着在运行应用程序时不需要安装 .NET Core 运行时。这种发布选项会使应用程序的大小更大,因为它包含了 .NET Core 运行时文件,但它可以使应用程序更易于部署和更可移植,因为它不需要依赖于 .NET Core 运行时的安装。
服务器安装环境
对应的.NET Core Server环境:
- 安装.NET Core Windows Server Hosting
- 查看模块安装是否成功,安装完成后再模块中会显示AspNetCoreModuleV2模块
- 如果没有,可以尝试右侧的操作栏,进行添加/编辑
上传发布文件
把文件上传到服务器上,放到自己指定的目录
在IIS上添加站点
右击=》添加网站
配置网站
配置完确认即可:
- 指定网站名称
- 指定网站承载程序的路径,也就是我们,第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 模型指的是将应用程序作为独立的进程来运行
验证,大功告成
有疑问和问题的,大家留言
相关文章
- LeetCode笔记:500. Keyboard Row
- LeetCode笔记:503. Next Greater Element II
- LeetCode笔记:513. Find Bottom Left Tree Value
- Colossal-AI发布新的深度学习辅助框架,半小时即可完成ViT-Base/32预训练
- LeetCode笔记:515. Find Largest Value in Each Tree Row
- LeetCode笔记:520. Detect Capital
- 时间序列分析中 5 个必须了解的术语和概念
- LeetCode笔记:524. Longest Word in Dictionary through Deleting
- LeetCode笔记:538. Convert BST to Greater Tree
- LeetCode笔记:539. Minimum Time Difference
- LeetCode笔记:557. Reverse Words in a String III
- PTP1588精密网络时钟系统技术方案
- LeetCode笔记:561. Array Partition I
- LeetCode刷题实战442:数组中重复的数据
- LeetCode笔记:566. Reshape the Matrix
- LeetCode笔记:575. Distribute Candies
- LeetCode刷题实战443:压缩字符串
- LeetCode笔记:598. Range Addition II
- SpringCloud+SpringBoot+OAuth2+Spring Security+Redis实现的微服务统一认证授权
- LeetCode笔记:617. Merge Two Binary Trees