ASP.NET CORE部署IIS的三种方式

ASP.NET Core 部署方式对比

本文档对比了三种常见的 ASP.NET Core 应用(如你的 DingTalkApproval 项目)部署到 Windows 10 上 IIS 服务器的方式:dotnet publish(手动部署)、Web Deploy(直接发布到 IIS)、Web Deploy 包(生成包后导入)。每种方式有其适用场景、优点和缺点。

1. 使用 dotnet publish 手动部署

描述

  • 使用 dotnet publish 命令(或 Visual Studio 的文件夹发布)生成 Release 版本,手动将文件部署到 IIS 服务器。
  • 示例命令:dotnet publish -c Release -o c:\publish
  • 在 Visual Studio 中:右键项目 -> 发布 -> 文件夹 -> C:\publish

流程

  1. 运行 dotnet publish 或通过 Visual Studio 发布到本地文件夹(如 C:\publish)。
  2. 将发布文件复制到 IIS 服务器的目标目录(如 C:\PUBLISH\WEB)。
  3. 配置 IIS 站点:
    • 创建或选择一个站点,指向该文件夹。
    • 将应用程序池设置为“无托管代码”,使用集成模式。
  4. 通过访问站点并检查日志验证部署。

优点

  • 灵活性高:完全控制发布文件和 IIS 配置。
  • 无需额外工具:服务器只需安装 .NET 运行时和 ASP.NET Core Hosting Bundle。
  • 适合测试:适合本地开发或小型项目。

缺点

  • 手动操作多:需要手动复制文件和配置 IIS,容易出错。
  • 耗时:相比自动化方式步骤更多。
  • 易出错:配置(如权限、应用程序池)需手动设置。

2. Web Deploy(直接发布到 IIS)

描述

  • 通过 Visual Studio 使用 Web Deploy 协议直接将应用发布到目标 IIS 服务器。
  • Visual Studio 自动完成文件传输和 IIS 配置。

流程

  1. 在 Visual Studio 发布向导中选择“Web 服务器(IIS)”。
  2. 配置目标服务器:
    • 输入服务器地址(IP 或域名)、站点名称、凭据。
    • 验证连接。
  3. 点击“发布”,Visual Studio 编译项目并通过 Web Deploy 传输文件到 IIS 服务器。
  4. Web Deploy 自动配置 IIS(如应用程序池、绑定等)。

优点

  • 自动化程度高:一键发布,自动完成文件传输和配置。
  • 效率高:无需手动操作,适合快速部署。
  • 适合生产环境:减少人为错误。

缺点

  • 网络依赖:需要开发机与目标服务器实时连接。
  • 环境要求:目标服务器必须安装 Web Deploy 并启用 IIS 管理服务。
  • 灵活性低:依赖实时连接,网络不稳定可能导致失败。

3. Web Deploy 包(生成包后导入)

描述

  • Visual Studio 生成一个 Web Deploy 包(.zip 文件,如 DingTalkApproval.zip),包含应用文件和部署配置,之后手动导入到 IIS。
  • 在 IIS 管理器中通过“导入应用程序”功能完成部署。

流程

  1. 在 Visual Studio 发布向导中选择“Web 部署包”。
  2. 指定包保存路径(如 C:\DingTalkApproval.zip)。
  3. 点击“发布”,生成包含应用文件和配置的 .zip 文件。
  4. 将包传输到目标服务器,在 IIS 管理器中通过“部署” -> “导入应用程序”完成部署。

优点

  • 离线部署:生成包后无需实时连接,可随时导入。
  • 灵活性高:包可分发、存档,适合团队协作或批量部署。
  • 标准化:包内可预定义配置(如应用程序池),便于统一部署。

缺点

  • 额外步骤:需要手动导入,相比直接发布多一步操作。
  • 环境要求:目标服务器仍需支持 Web Deploy。
  • 前期准备:生成包可能需要额外配置(如通过 Visual Studio)。

对比总结

方面dotnet publish(手动部署)Web Deploy(直接发布)Web Deploy 包(生成包后导入)
操作方式手动发布和配置一键直接发布到 IIS先生成包,再手动导入
自动化程度低,手动操作多高,自动完成部署中等,手动导入但配置自动化
网络要求无需实时连接需要实时连接无需实时连接,离线传输即可
灵活性高,可完全控制文件和配置较低,依赖实时连接较高,可存档、分发、延迟部署
适用场景本地测试、小型项目快速部署到测试/生产环境开发者与运维分离、批量部署
环境依赖.NET 运行时、Hosting Bundle需安装 Web Deploy需支持 Web Deploy 导入

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/77747.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

基于共享上下文和自主协作的 RD Agent 生态系统

在llmangentmcp这个框架中: LLM: 依然是智能体的“大脑”,赋予它们理解、推理、生成和规划的能力,并且也用于处理和利用共享上下文。Agent: 具备特定 R&D 职能的自主单元,它们感知共享上下文&#xff0…

zephyr架构下Bluetooth advertising接口

目录 概述 1 函数接口 2 主要函数介绍 2.1 bt_le_adv_start函数 2.1.1 函数功能介绍 2.1.2 典型使用示例 2.1.3 广播间隔 2.1.4 注意事项 2.2 bt_le_adv_stop 函数 2.2.1 函数功能 2.2.2 使用方法介绍 2.2.3 实际应用示例 2.2.4 关键注意事项 2.2.5 常见问题解决 …

8、HTTPD服务--ab压力测试

一、ab压力测试 # ab ‐c 100 ‐n 1000 http://vedio.linux.com/index.html 2 This is ApacheBench, Version 2.3 <$Revision: 1430300 $> 3 Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ 4 Licensed to The Apache Software Foundation,…

E2E 测试

以下是关于端到端(E2E)测试的基本知识总结: 一、E2E 测试核心认知 1. 定义与价值定位 "模拟真实用户在完整应用环境中的操作流程"核心价值: 验证跨系统/模块的集成功能检测用户流程中的关键路径保障核心业务场景的可用性测试金字塔定位:单元测试(70%) → 集…

python之数字类型的操作

Python数据类型与操作符完全指南&#xff1a;详解各类数据操作技巧 目录 数字类型 字符串 列表 元组 字典 集合 布尔 通用操作符 注意事项 1. 数字类型&#xff08;int, float, complex&#xff09; 数字类型是Python中最基础的数据类型&#xff0c;支持多种数学运算…

基于Spring Boot+Vue 网上书城管理系统设计与实现(源码+文档+部署讲解)

技术范围&#xff1a;SpringBoot、Vue、SSM、HLMT、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、小程序、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容&#xff1a;免费功能设计、开题报告、任务书、中期检查PPT、系统功能实现、代码编写、论文编写和辅导、论文…

从拒绝采样到强化学习,大语言模型推理极简新路径!

大语言模型&#xff08;LLMs&#xff09;的推理能力是当下研究热点&#xff0c;强化学习在其复杂推理任务微调中广泛应用。这篇论文深入剖析了相关算法&#xff0c;发现简单的拒绝采样基线方法表现惊人&#xff0c;还提出了新算法。快来一探究竟&#xff0c;看看这些发现如何颠…

测试——BUG篇

1. 软件测试的生命周期 软件测试贯穿于软件的整个生命周期&#xff0c;针对这句话我们⼀起来看⼀下软件测试是如何贯穿软件的整个生命周期。 软件测试的⽣命周期是指测试流程&#xff0c;这个流程是按照⼀定顺序执⾏的⼀系列特定的步骤&#xff0c;去保证产品质量符合需求。在…

【Hive入门】Hive函数:内置函数与UDF开发

Apache Hive作为Hadoop生态系统中的重要组件&#xff0c;为大数据分析提供了强大的SQL-like查询能力。Hive不仅支持丰富的内置函数&#xff0c;还允许用户开发自定义函数&#xff08;UDF&#xff09;以满足特定需求。本文将深入探讨Hive的内置函数&#xff08;包括数学函数、字…

关于汇编语言与程序设计——子程序设计

学习目标&#xff1a; 编程实现两个数&#xff1a;#8888H 和 #79H 的乘除运算。 一、实验要求 能够熟练掌握算术运算汇编指令的使用&#xff1b;熟练掌握子程序设计的基本方法&#xff1b;熟练掌握程序的调试方法。 二、实验设计 1.整体思路 乘法&#xff1a;将单字节的乘数…

AWS SQS 队列策略配置指南:常见错误与解决方案

在 AWS 云服务中,Simple Queue Service (SQS) 是一种完全托管的消息队列服务,广泛应用于分布式系统组件间的解耦。为了确保队列的安全访问,正确配置队列策略至关重要。本文将详细介绍 SQS 队列策略的配置方法,常见错误及其解决方案。 SQS 队列策略基础 SQS 队列策略是基于…

Webshell管理工具的流量特征

目录 一、常见Webshell工具流量特征 1. ​​中国菜刀&#xff08;Chopper&#xff09;​​ 2. ​​冰蝎&#xff08;Behinder&#xff09;​​ 3. ​​哥斯拉&#xff08;Godzilla&#xff09;​​ 4. ​​蚁剑&#xff08;AntSword&#xff09;​​ 5. ​​C99 Shell​​…

【每日八股】复习 MySQL Day3:锁

文章目录 昨日内容复习MySQL 使用 B 树作为索引的优势是什么&#xff1f;索引有哪几种&#xff1f;什么是最左匹配原则&#xff1f;索引区分度&#xff1f;联合索引如何排序&#xff1f;使用索引有哪些缺陷&#xff1f;什么时候需要建立索引&#xff0c;什么时候不需要&#xf…

Arkts完成数据请求http以及使用axios第三方库

import http from ohos.net.http Entry Component struct HttpPage {State message: string Hello Worldbuild() {Column({space:20}) {Row(){Button(发送http请求).onClick(()>{let httpRequest http.createHttp();httpRequest.request(https://zzgoodqc.cn/index.php/in…

SELinux 从理论到实践:深入解析与实战指南

文章目录 引言&#xff1a;为什么需要 SELinux&#xff1f;第一部分&#xff1a;SELinux 核心理论1.1 SELinux 的三大核心模型1.2 安全上下文&#xff08;Security Context&#xff09;1.3 策略语言与模块化 第二部分&#xff1a;实战操作指南2.1 SELinux 状态管理2.2 文件上下…

CD34.【C++ Dev】STL库的string的使用 (上)

目录 1.知识回顾 2.串联类和对象的知识重新理解 构造函数 string(); string (const string& str); string (const string& str, size_t pos, size_t len npos); string (const char* s); string (size_t n, char c); append和push_back string& append …

Git常用指令速查

Git常用指令速查 基本操作类&#xff1a; git init &#xff1a;初始化仓库git log&#xff1a;查看日志&#xff0c;这个命令很重要&#xff01;git add <文件名|.>&#xff1a;添加到暂存区git commit -m 注释&#xff1a;提交到仓库git merge <分支名>&#xf…

探索无人机模拟环境的多元景象及AI拓展

无人驾驶飞行器&#xff08;UAVs&#xff09;在各行各业的迅速普及&#xff0c;从农业和检测到空中操作和人机交互等令人兴奋的前沿领域&#xff0c;都引发了一个关键需求&#xff1a;强大而逼真的模拟环境。直接在物理硬件上测试尖端算法存在固有的风险——成本高昂的坠机、中…

AI Agent开源技术栈

构建和编排Agent的框架 如果您是从头开始构建&#xff0c;请从这里开始。这些工具可以帮助您构建Agent的逻辑——做什么、何时做以及如何处理工具。您可以将其视为将原始语言模型转化为更自主的模型的核心大脑。 2. 计算机和浏览器的使用 一旦你的Agent能够规划&#xff0c…

jspm老年体检信息管理系统(源码+lw+部署文档+讲解),源码可白嫖!

摘要 信息化时代&#xff0c;各行各业都以网络为基础飞速发展&#xff0c;而医疗服务行业的发展却进展缓慢&#xff0c;传统的医疗服务行业已经逐渐不满足民众的需求&#xff0c;有些还在以线下预约的方式接待病人&#xff0c;特别是针对于老年体检的服务&#xff0c;是少之又…