【c#】 Web Deploy一键发布,IIS部署全流程

发布时间:2026/11/1 17:45:09

【c#】 Web Deploy一键发布,IIS部署全流程 项目ASP.NET Core 8.0 Web API服务器阿里云 Windows Server IIS部署方式VS Web Deploy 一键发布一、前置准备1.1 本地环境项说明项目框架.NET 8.0开发工具Visual Studio发布方式Web Deploy直接推送到远程 IIS1.2 服务器环境项说明操作系统Windows Server阿里云公网 IPXXXXWeb 服务器IIS已安装1.3 代码调整Program.cs中 Swagger 原本只在开发环境启用// 修改前if(app.Environment.IsDevelopment()){app.UseSwagger();app.UseSwaggerUI();}// 修改后去掉环境判断生产也可见app.UseSwagger();app.UseSwaggerUI();二、服务器端安装与配置2.1 安装 .NET 8 Hosting Bundle下载地址https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0注意Hosting Bundle 不是独立板块它在ASP.NET Core 运行时那一行的链接里找 “Hosting Bundle” 这个小链接。安装时选最新版 8.0.29安装完成后重启 IISiisreset2.2 安装 IIS 管理服务Management ServiceWeb Deploy 需要管理服务来接收远程发布请求。Install-WindowsFeatureWeb-Mgmt-Service2.3 安装 Web Deploy下载https://www.iis.net/downloads/microsoft/web-deploy选Web Deploy 4.0安装时选择更改Change务必勾选所有子组件尤其是IIS Deployment Handler否则 msdeploy 处理器不会注册到 IIS。2.4 启用远程连接打开 IIS 管理器左侧选中服务器节点最顶层双击管理服务先点右侧停止勾选启用远程连接端口保持默认8172点右侧应用→启动2.5 放行端口Windows 防火墙添加入站规则放行 TCP 端口8172和8080站点端口。阿里云安全组在阿里云控制台 → 安全组 → 入方向规则添加端口协议用途8080TCP站点访问8172TCPWeb Deploy 远程发布2.6 创建 IIS 站点设置项值站点名称JpaasPrinter物理路径C:\inetpub\wwwroot\JpaasPrinter绑定端口8080应用程序池 .NET CLR 版本无托管代码托管管道模式集成2.7 设置文件夹权限站点物理路径如C:\inetpub\wwwroot\JpaasPrinter需要让 IIS 应用池账户读取。右键文件夹 → 属性 → 安全 → 编辑 → 添加IIS AppPool\JpaasPrinter权限勾选读取和执行、列出文件夹内容、读取。三、VS 发布配置3.1 配置发布配置文件右键项目 →发布→Web 服务器 (IIS)→Web 部署。字段填写内容服务器XXX站点名称JpaasPrinter必须和 IIS 里完全一致目标 URLhttp://XXX:8080用户名Administrator密码服务器 Administrator 密码3.2 允许不受信任的证书Windows Server 的 IIS 管理服务使用自签名证书VS 默认不信任。两种修复方式方式 A推荐编辑Properties\PublishProfiles\IISProfile.pubxml添加AllowUntrustedCertificatetrue/AllowUntrustedCertificate方式 B在 VS 发布页面 → 更多连接选项 → 勾选允许不受信任的证书。四、遇到的问题及解决问题 1找不到 Hosting Bundle 下载现象.NET 8.0 下载页面没有独立叫 “Hosting Bundle” 的板块。原因Hosting Bundle 的下载链接藏在ASP.NET Core 运行时那一行的小字链接里。解决展开某个版本号在ASP.NET Core 运行时行中找到 “Hosting Bundle” 链接或直接访问https://dotnet.microsoft.com/zh-cn/download/dotnet/thank-you/runtime-aspnetcore-8.0.29-windows-hosting-bundle-installer问题 2IIS 里看不到管理服务现象装了 Web Deploy 但 IIS 管理器里没有出现管理服务功能。原因管理服务Management Service是 IIS 的一个独立功能不随 Web Deploy 安装。解决Install-WindowsFeatureWeb-Mgmt-Service问题 3VS 验证连接报 404现象Web 部署任务失败。远程服务器返回了错误 (404) 未找到。原因两个可能管理服务启用远程连接没打勾Web Deploy 的 msdeploy.axd 处理器没注册到 IIS排查# 检查 WMSVC 服务和 IIS 管理服务状态Get-ServiceWMSVCGet-WindowsFeatureWeb-Mgmt-ServiceTest-NetConnection8.135.xx.xx-Port 8172# 检查 msdeploy 处理器Get-WebHandler|Where-Object{$_.Name-like*msdeploy*}解决如端口不通 → 检查防火墙和安全组如管理服务没启用 → IIS 管理器里勾选启用远程连接如处理器丢失 → 修复 Web Deploy 安装确保勾选 IIS Deployment Handler问题 4证书验证失败现象ERROR_CERTIFICATE_VALIDATION_FAILED原因IIS 管理服务使用自签名证书VS 不信任。解决在发布配置文件中添加AllowUntrustedCertificatetrue/AllowUntrustedCertificate五、发布时的行为说明文件替换机制ASP.NET Core 使用影子复制IIS 启动时会从publish目录复制文件到临时目录再执行原始文件不被锁定。发布时 Web Deploy 可以直接覆盖原始文件不会被文件使用中拦住。覆盖完成后ASP.NET Core Module 检测到文件变化自动回收旧进程用新文件重新启动。站点是否停机发布过程中站点不会主动停止。文件替换后新进程自动启动切换期间可能 1-3 秒请求失败502/503流量小的项目无需在意。六、快速参考常用命令# 重启 IISiisreset# 检查管理服务状态Get-ServiceWMSVC# 检查 IIS 站点列表Get-Website|Select-ObjectName,PhysicalPath,State# 检查端口连通性Test-NetConnection8.135.xx.xx-Port 8172Test-NetConnection8.135.xx.xx-Port 8080# 检查 Web Deploy 处理器Get-WebHandler|Where-Object{$_.Name-like*msdeploy*}端口清单端口协议用途需放行位置8080TCP网站访问阿里云安全组 Windows 防火墙8172TCPWeb Deploy 发布阿里云安全组 Windows 防火墙
延伸阅读

更多相关文章

2026/10/29 9:11:27

LangChain+LangGraph+MCP:AI Agent三层架构实战解析

1. 项目概述:AI Agent开发的三层架构革命去年在开发智能客服系统时,我尝试过直接调用大语言模型API,结果遇到了响应延迟、上下文丢失和任务连续性差等问题。直到发现了LangChainLangGraphMCP这个三层架构,才真正实现了生产级AI Ag…

2026/10/28 0:06:46

用Higgsfield从脚本到画面,商家做品牌视频省万元成本

# AI广告工作流实战:从脚本到画面用Higgsfield完成,商家也能做品牌视频,省万元成本!在数字营销时代,视频广告是品牌触达用户的核心手段,但传统制作流程往往需要专业团队、拍摄设备、后期剪辑,动…

2026/10/28 18:47:54

基于PandasAI的智能数据分析Agent:从自然语言到专业报告

智能数据分析Agent是当前AI技术在企业级应用中最具实用价值的落地项目之一。这个项目基于PandasAI开源框架,实现了从自然语言到数据分析的全流程自动化,让不懂SQL和Pandas的业务人员也能通过简单的对话完成专业级数据分析。 最值得关注的是该项目采用双…

2026/11/1 2:01:37

1.c++入门篇

1.c中的关键字asmdoifreturntrycontinueautodoubleinlineshorttypedefforbooldynamic_castintsignedtypeidpublicbreakelselongsizeoftypenamethrowcaseenummutablestaticunionwchar_tcatchexplicitnamespacestatic_castunsigneddefaultcharexportnewstructusingfriendclassext…

2026/11/1 2:01:37

《江灯合声》:有可行的分框版,也仍可以选择连续鸣谢

武汉江岸区栎坡合唱团在免费节目册《江灯合声》中,以表格集中鸣谢资助者。各家共同要求改为独立小框,团里仍想保留表格。现有全名与支持事项清楚可见,双方此前未承诺具体排版。我支持保留表格。补充的试排材料让选择更具体:分框能…

2026/11/1 2:01:37

关于“贾子猜想”的数学地位、结构特征与讨论边界

关于“贾子猜想”的数学地位、结构特征与讨论边界摘要 本文对“贾子猜想”进行基于公开表述与现有数学事实的分析。该猜想主张:当正整数 n3m>5(即 n6,9,12,15,…)时,方程x₁ⁿ x₂ⁿ ⋯ xₙⁿ yⁿ不存在正整数解。文章首先…

2026/11/1 2:01:37

启动报Port 8088 was already in use?先查是谁占的

启动报Port 8088 was already in use?先查是谁占的 项目启动报 Port 8088 was already in use,意思很直白:这个端口已经有人占了。 先说原理:端口是"门牌号",一间房只住一个进程 端口就是一台机器上的门牌号…

2026/11/1 2:01:37

担心文档上云?本地运行的办公AI才敢放心用

单位上周开了个会,主题是"AI 提效",散会时领导补了一句:涉及客户资料的文档,不许往云端传。这话一出,会议室里本来跃跃欲试的同事全蔫了——大家平时用的那些在线 AI,文档一上传就不知道存哪儿去…

2026/11/1 1:56:37

华为OD机试真题 新系统 2026-10-28 JavaGoC【社交网络消息转发】

目录 题目 思路 Code 题目 题目内容: 在一个社交网络中,有 N 个用户(编号 0 到 N−1);每个用户都有一个「转发名单」(整数),该数二进制格式中的第 i 位为 1 表示此用户会把消息转发给第 i 个用户。 给定一个整数数组 forwardLists 和一个整数 initialSenders,请…

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/11/1 0:01:26

面向复杂光照与角度的宠物面部识别鲁棒性增强策略

在智慧养宠时代,基于视觉的宠物身份识别技术正逐步从实验室走向家庭应用。然而,与配合度高的人类不同,宠物是典型的“非合作生物识别对象”——它们不会主动配合摄像头调整姿态,更无法控制光照环境。实际应用中,我们常…

2026/11/1 1:01:33

SSM电子书店源码全解析:结构、原理、部署与排错实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

还想了解更多?直接咨询顾问

免费诊断 + 免费方案 + 透明报价。

全国咨询热线400-8866-253
免费获取方案
☎咨询二维码 ☎ ↑