【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 防火墙

相关新闻

从OpenAI Codex迁移到国产大模型:接口适配与工程实践指南

从OpenAI Codex迁移到国产大模型:接口适配与工程实践指南

在实际开发中,我们常常会遇到项目初期基于某个特定技术栈(例如 OpenAI 的 Codex 模型)构建了核心功能,但随着技术发展、成本控制或合规要求的变化,需要将底层引擎平滑替换为国产替代方案,如 DeepSeek、通义…

2026/7/25 11:55:14阅读更多 →
终极Lua JSON处理指南:如何在5分钟内集成高性能数据交换

终极Lua JSON处理指南:如何在5分钟内集成高性能数据交换

终极Lua JSON处理指南:如何在5分钟内集成高性能数据交换 【免费下载链接】json.lua A lightweight JSON library for Lua 项目地址: https://gitcode.com/gh_mirrors/js/json.lua JSON.lua 是一个专为Lua开发者设计的轻量级JSON库,它能在纯Lua环境…

2026/7/25 11:55:14阅读更多 →
风电功率预测:GMM与LSTM融合技术解析

风电功率预测:GMM与LSTM融合技术解析

1. 项目背景与核心价值风电功率预测是新能源并网调度中的关键技术痛点。传统物理建模方法受限于气象数据精度和机组特性变化,预测误差常超过20%。我们团队研发的这套系统创新性地融合了高斯混合模型(GMM)与深度学习技术,在实际运行…

2026/7/25 11:55:14阅读更多 →
3分钟学会ncmdump:快速解密网易云音乐NCM格式的完整指南

3分钟学会ncmdump:快速解密网易云音乐NCM格式的完整指南

3分钟学会ncmdump:快速解密网易云音乐NCM格式的完整指南 【免费下载链接】ncmdump 项目地址: https://gitcode.com/gh_mirrors/ncmd/ncmdump 你是否曾经在网易云音乐下载了心爱的歌曲,却发现只能在官方客户端播放?😔 NCM格…

2026/7/25 13:23:29阅读更多 →
AM62L硬件防火墙配置实战:从寄存器解析到安全隔离实现

AM62L硬件防火墙配置实战:从寄存器解析到安全隔离实现

1. 防火墙寄存器配置:从硬件手册到工程实践在嵌入式系统,尤其是像TI AM62L这样的复杂多核异构SoC设计中,硬件防火墙(Firewall)是构建系统安全基石的“守门人”。它不像软件防火墙那样依赖操作系统调度,而是…

2026/7/25 13:23:29阅读更多 →
AI应用开发实战指南:从零搭建环境到工程化部署全流程

AI应用开发实战指南:从零搭建环境到工程化部署全流程

这类标题经常出现在学习资源推荐里,但“最详细”、“七天小白到大佬”、“少走99%弯路”这类说法,更多是吸引点击的表述。作为一个有十多年经验的开发者,我更想和你聊聊,当你想系统学习AI应用开发时,真正应该关注什么、…

2026/7/25 13:23:29阅读更多 →
WarcraftHelper:魔兽争霸III现代化改造的5大核心解决方案

WarcraftHelper:魔兽争霸III现代化改造的5大核心解决方案

WarcraftHelper:魔兽争霸III现代化改造的5大核心解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸III在现代电脑上的…

2026/7/25 13:23:29阅读更多 →
3分钟快速上手:浏览器端SQLite查看器的终极使用指南

3分钟快速上手:浏览器端SQLite查看器的终极使用指南

3分钟快速上手:浏览器端SQLite查看器的终极使用指南 【免费下载链接】sqlite-viewer View SQLite file online 项目地址: https://gitcode.com/gh_mirrors/sq/sqlite-viewer 还在为查看SQLite数据库文件而烦恼吗?SQLite Viewer 是一个完全在浏览器…

2026/7/25 13:23:29阅读更多 →
企业级AI四层架构:RAG、Agents、MCP与A2A协同实战

企业级AI四层架构:RAG、Agents、MCP与A2A协同实战

1. 企业级AI架构的协同进化趋势2026年的企业智能化战场早已不是单一技术比拼的时代。过去三年我深度参与了17家跨国企业的AI架构升级项目,发现一个共性规律:那些执着于"RAG vs Agents"技术路线之争的企业,最终都陷入了局部优化的泥…

2026/7/25 13:21:28阅读更多 →
Go语言静态资源打包方案对比与实践指南

Go语言静态资源打包方案对比与实践指南

1. 项目背景与核心需求在Go语言开发中,我们经常需要处理静态资源文件的打包问题。无论是Web应用的模板文件、前端资源,还是配置文件、证书等,都需要随程序一起分发。传统做法是将这些文件与编译后的二进制文件放在同一目录下,但这…

2026/7/25 1:01:14阅读更多 →
Go语言实现高性能LDAP认证服务的架构与实践

Go语言实现高性能LDAP认证服务的架构与实践

1. 项目背景与核心价值LDAP(轻量级目录访问协议)作为企业级身份认证的黄金标准,已经服务了超过80%的财富500强公司。我在金融科技领域实施统一认证体系时,发现传统Java方案存在启动慢、内存占用高等痛点。而Go语言凭借其协程并发模…

2026/7/25 1:01:14阅读更多 →
【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

【AI面试官实战指南】:用ChatGPT模拟10类高频技术岗面试,3天提升应答精准度92%

更多请点击: https://intelliparadigm.com 第一章:AI面试官实战指南的核心价值与适用场景 AI面试官并非替代人类HR的“黑箱工具”,而是以可解释、可审计、可迭代的方式,赋能招聘全链路的关键基础设施。其核心价值在于将主观经验沉…

2026/7/25 1:01:14阅读更多 →
突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存

突破文档下载限制:kill-doc让你看到的都能保存 【免费下载链接】kill-doc 看到经常有小伙伴们需要下载一些免费文档,但是相关网站浏览体验不好各种广告,各种登录验证,需要很多步骤才能下载文档,该脚本就是为了解决您的…

2026/7/25 0:01:16阅读更多 →
C++ string类模拟实现:从深拷贝到内存管理的完整指南

C++ string类模拟实现:从深拷贝到内存管理的完整指南

1. 项目概述:为什么我们要“手撕”string类?在C的学习道路上,尤其是从C语言过渡到C的“初阶”阶段,string类绝对是一个绕不开的核心。标准库里的std::string用起来太方便了,、find、substr,几个操作符和函数…

2026/7/25 0:01:16阅读更多 →
三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

三角洲寻宝鼠工具:高效文件搜索与资源管理实战指南

1. 先搞清楚“三角洲寻宝鼠”到底是什么工具从名称来看,“三角洲寻宝鼠”更像是一个资源查找或文件检索类工具,而不是游戏或娱乐软件。这类工具的核心价值在于帮助用户快速定位特定资源,比如文档、图片、压缩包或特定格式的文件。如果你经常需…

2026/7/25 0:01:16阅读更多 →
YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

YOLOv8推理性能优化:从1.2FPS到35FPS的全链路加速实践

如果你在部署 YOLOv8 时,发现推理速度只有可怜的 1-2 FPS,而别人的演示视频却能跑到 30 FPS 以上,那么问题很可能不在模型本身,而在于你的整个处理链路。很多开发者拿到一个训练好的 YOLOv8 模型后,会直接使用官方示例…

2026/7/24 23:01:03阅读更多 →
Coze与Dify对比指南:低代码AI应用开发从入门到实战

Coze与Dify对比指南:低代码AI应用开发从入门到实战

1. 从零到一:为什么你需要了解 Coze 和 Dify?如果你对 AI 应用开发感兴趣,但一看到“大模型”、“智能体”、“工作流”这些词就头疼,觉得门槛太高,那这篇文章就是为你准备的。很多开发者,包括我自己&#…

2026/7/24 19:00:40阅读更多 →
AI生图工具怎么选?2026年6月版实测对比

AI生图工具怎么选?2026年6月版实测对比

做自媒体的朋友应该都有体会:配图一直是个让人头疼的问题。2026年,AI生图工具已经非常成熟了,但工具太多反而不知道怎么选。以下是截至2026年6月我对主流AI生图工具的实测对比。Midjourney V8.1:速度之王2026年6月11日&#xff0c…

2026/7/24 19:00:40阅读更多 →