.NET8 Web 利用BAT命令 一键部署 IIS - CI-CD基础

1. Windows Server 前置准备

1.1 IIS安装好

1.2 .NET8 Sdk 运行时 安装

官方下载地址:https://dotnet.microsoft.com/zh-cn/download/dotnet/8.0

在这里插入图片描述

1.3 创建一个.NET8 WebMvc项目 生成发布包

微软MVC这个项目模板直接创建,发布

在这里插入图片描述

2. 利用 BAT 来一键部署 Web站点

2.1 发布前 - IIS 和 应用程序池(没有东西)

在这里插入图片描述

2.2 编辑一个 AutoDeployNET8Web.bat,放在发布目录中

在这里插入图片描述

2.3 右键管理员权限运行 AutoDeployNET8Web.bat

在这里插入图片描述

2.4 查看 Web站点和 应用程序池 创建成功

在这里插入图片描述

2.5 根据控制台 提示 打开 http://127.0.0.1:8080/

在这里插入图片描述

2.6 恭喜,Success!

如果日常工作是手动发布的方式,可以慢慢修改为一键发布。

================ 分割线 ================

附录

AutoDeployNET8Web.bat 内容参照


:: 防止中文输出乱码(虚拟目录存在中文时会出现乱码,把这句话放出来)
:: chcp 65001:: 切换到当前bat所在的目录
cd /d %~dp0:: 设置当前bat所在目录为站点所在目录
@set "sitePath=%cd%\":: 设置IISWeb站点名称
@set WebSiteName="NET8Web" :: 设置应用程序池名称 
@set ApplicationPool_Name="NET8WebAppPool":: 设置应用程序池.NETCLR版本  示例:""(无托管代码),"v4.0","v2.0"
@set ApplicationPool_NETCLRVersion="":: 设置IIS站点端口
@set WebSitePort="8080":: 启用32位应用程序;默认:false;支持 true 或者 false;
@set Enable32BitAppOnWin64="true"@echo off 
echo= 
@echo ---------------------------------------------------
@echo Start Deploy WebSite %WebSiteName% 
echo= :: 新建应用程序池
@echo Create IIS ApplicationPool start...
@C:\Windows\System32\inetsrv\appcmd.exe add apppool /name:%ApplicationPool_Name% /managedRuntimeVersion:%ApplicationPool_NETCLRVersion% /Enable32BitAppOnWin64:%Enable32BitAppOnWin64%
@echo Create IIS ApplicationPool finished...
echo= :: 新建IIS站点 绑定域名端口
@echo Create IIS Web Site start...
@C:\Windows\System32\inetsrv\appcmd.exe add site /name:%WebSiteName% /bindings:http/*:%WebSitePort%: /applicationDefaults.applicationPool:%ApplicationPool_Name% /physicalPath:%sitePath%
@echo Create IIS Web Site finished...
echo= :: 停止一下IIS站点
@echo stop WebSite start...
@C:\Windows\System32\inetsrv\appcmd.exe stop site %WebSiteName%
@echo stop WebSite finished...
echo= :: 启动IIS站点
@echo Restart WebSite start...
@C:\Windows\System32\inetsrv\appcmd.exe start site %WebSiteName%
@echo Restart WebSite finished...
echo= :: 给站点目录赋everyone访问权限,避免iis无法访问站点发布目录
@echo Access Configuration start...
cacls %sitePath% /t /e /g everyone:f 
@echo Access Configuration finished...
echo= :: 查看所有站点
@C:\Windows\System32\inetsrv\appcmd.exe list site:: 查看所有应用程序池
@C:\Windows\System32\inetsrv\appcmd.exe list apppool@echo Finished Deploy WebSite %WebSiteName%
echo= 
@echo ---------------------------------------------------
echo=::高亮显示
for /F "tokens=1,2 delims=#" %%a in ('"prompt #$H#$E# & echo on & for %%b in (1) do rem"') do (set "DEL=%%a"
)
rem echo say the name of the colors, don't read
:start
rem cls
call :ColorText 02 "---------------- 恭喜你,发布成功--------------------"
echo.
call :ColorText 02 "-----------------------------------------------------"
echo.
call :ColorText 02 "---------在浏览器输入以下网址进行访问网站------------"
echo.
echo http://127.0.0.1:8080
echo.
pause
goto :eof
:ColorText
echo off
<nul set /p ".=%DEL%" > "%~2"
findstr /v /a:%1 /R "^$" "%~2" nul
del "%~2" > nul 2>&1
goto :eof
echo.
echo.Pause

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

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

相关文章

Html5—表单

第三章 表单 表单 第三章 表单3.1表单元素3.1.1表单格式3.1.2表格元素格式3.1.3元素属性3.1.4元素标注3.1.5 表单初级验证 3.1表单元素 3.1.1表单格式 <!-- action:表单向何处发送method:get/post, 表单提交方式get:比较快&#xff0c;当不安全post:安全&#xff0c;比较慢…

【STM32】FMC

FMC功能与FSMC类似&#xff0c;但比FSMC更强大&#xff0c;但仅在F4 / F7 / H7等高级一点的MCU上支持&#xff0c;F1不支持。虽然我的是F103&#xff0c;但顺便都看了。 大部分图片来源&#xff1a;正点原子HAL库课程 专栏目录&#xff1a;记录自己的嵌入式学习之路-CSDN博客 目…

Vue 和 Element Plus 弹框组件详解:从基本实现到异步数据加载与自定义内容(实战)

目录 前言1. 基本知识2. 模版3. 实战 前言 主要是通过一个按钮触发一个按钮框&#xff0c;多种方式的逻辑&#xff0c;多种场景 原先通过实战总结&#xff0c;基本的知识推荐阅读&#xff1a; 详细分析Element Plus中的ElMessageBox弹窗用法&#xff08;附Demo及模版&#x…

秋招复习笔记——嵌入式裸机开发

底层相关的内容&#xff0c;之前掌握的不扎实&#xff0c;现在重新把相关重点记录一下&#xff0c;做个笔记记诵。 相关基础知识 ST简单内容 用的F103ZET6&#xff0c;72MHz&#xff0c;FLASH是512KB&#xff0c;SRAM是64KB&#xff0c;144个引脚&#xff0c;2基本定时器&am…

MATLAB算法实战应用案例精讲-【采样路径规划算法】RRT算法(附MATLAB源码)

目录 前言 算法原理 算法流程 算法流程图 优缺点 伪代码 知识拓展 基于BINN算法的CCPP全路径覆盖算法 1、CCPP整体算法 2. 核心代码 代码 1.MATLAB 前言 RRT算法是适用于高维空间,通过对状态空间中的采样点进行碰撞检测,避免了对空间的建模,较好的处理带有非…

密码学之广播加密

1.什么是广播加密 广播加密是一种支持在不安全的公开信道上实现多用户数据安全共享的加密技术&#xff0c;适用于一对多安全传输场景。 2.广播加密的工作原理 数据拥有者首先选取一组接收者&#xff0c;运行广播加密算法&#xff0c;将加密得到的密文发布到公开信道&#xf…

百度ERNIE-SDK使用示例

百度ERNIE-SDK使用示例 文档 https://github.com/PaddlePaddle/ERNIE-SDK/blob/develop/erniebot/README.md https://ernie-bot-agent.readthedocs.io 调用大模型示例 import erniebot from typing import List, Optionalimport requests import jsonimport asyncio import…

目标 CDC实例数据库更改密码,预定启动报错SQL 错误代码为“-30082”。SQL 状态为:08001。

更改完CDC目标端实例密码后&#xff0c;登录MC更新存储器密码&#xff0c;存储器可正常连接&#xff0c;启动预定报错如下&#xff1a; 源 IBM Data Replication 未获授权&#xff0c;无法复制到该目标。 登录认证失败。 发生 SQL 异常。SQL 错误代码为“-30082”。SQL 状态…

嵌入式学习——ARM学习(1)

1、存储器 高速缓存&#xff08;Cache&#xff09;通常分为三级&#xff1a;L1、L2 和 L3。它们的主要功能和特点如下&#xff1a; 这三级缓存的设计旨在通过层次化存储来优化数据访问速度和处理器性能。 1、L1 缓存&#xff1a; 位置&#xff1a;直接集成在处理器核心内。 大小…

c++自定义迭代器,如跳表,怎么实现

在C中&#xff0c;跳表是一种高效的数据结构&#xff0c;用于存储有序数据并支持快速查找、插入和删除操作。为了在C类中实现跳表迭代器&#xff0c;你需要定义一个迭代器类&#xff0c;并在跳表类中提供相应的接口。以下是一个简单的实现示例&#xff1a; #include <iostr…

打手机检测算法源码样本展示打手机检测算法实际应用场景介绍

打手机检测算法是一种利用计算机视觉技术来监测和识别人们在特定区域如驾驶舱、考场或其他敏感区域非法使用手机的行为。这种算法对于提高安全性和确保规则的遵守具有重要意义。以下是关于打手机检测算法源码及其实际应用的详细阐述&#xff1a; 1. 算法实现 - 深度学习框架&a…

【selenium点选下拉框】解决无法选中对应选项的问题

需求 使用selenium点击下拉框&#xff0c;选中【是】选项。 代码 方法1 # 点击下拉框 driver.find_element(xpath,//*[id"basicProcessDetail"]/div[2]/div[2]/div[1]/div/div[2]/div/div/div/div[1]/div[2]/form/div[11]/div[1]/div/div/div[1]/div[1]/div/i).…

雷达图概述以及实例

目录 一.雷达图概述1.何为雷达图2.雷达图的构成要素 二.实例&#xff08;以Excel、Python为例 &#xff09;1.Excel&#xff08;2021版&#xff09;2.Python 一.雷达图概述 1.何为雷达图 雷达图&#xff0c;是一种展现多维度数据间相对重要性或程度的可视化图形。以中心点为起…

分意图 Prompt 调试、后置判别改写、RLHF 缓解大模型生成可控性

分意图 Prompt 调试、后置判别改写、RLHF 这三种方法是为了提高大模型生成内容的可控性&#xff0c;具体原因如下&#xff1a; 分意图 Prompt 调试&#xff1a; 通过针对不同的任务或意图设计特定的 Prompt&#xff0c;可以更精确地引导模型生成符合期望的内容。分意图 Prompt …

java:stream流

1、 stream是什么&#xff1f;有什么作用?结合了什么技术&#xff1f; 答&#xff1a;简化集合、数组操作的API,结合了lambda表达式。 2、说说stream流处理数据的步骤是什么&#xff1f; 先得到集合或者数组的stream流。 然后调用stream流的方法对数据进行处理。 获取处理…

梧桐数据库(WuTongDB):什么是“顺序扫描”

“顺序扫描”是数据库管理系统&#xff08;DBMS&#xff09;中最基本的访问方法之一&#xff0c;尤其在查询数据时经常被使用。下面是关于顺序扫描技术的详细说明&#xff1a; 1. 定义 顺序扫描&#xff08;Sequential Scan&#xff09;是一种数据访问方法&#xff0c;其中数…

LabVIEW高速数据采集关键问题

在LabVIEW进行高速数据采集时&#xff0c;需要关注以下几个关键问题&#xff1a; 数据采集硬件的选择: 高速数据采集需要高性能的数据采集硬件&#xff0c;例如NI PXIe、USB DAQ等模块。硬件的选择应根据采集速率、通道数、精度、以及应用场景的具体需求来确定。 采集速率与带…

ByteBuffer详解

文章目录 1. ByteBuffer是抽象类&#xff0c;他的主要实现类为2. 获取方式3. 核心结构4. 核心API5. 字符串操作 1. ByteBuffer是抽象类&#xff0c;他的主要实现类为 HeapByteBuffer 堆ByteBuffer JVM内的堆内存 —> 读写操作 效率低 会受到GC影响MappedByteBuffer(DirectB…

桥接模式-多类型登录方式的思考

桥接模式-SSO单点登录 背景:(业务细节已脱敏)需求:问题:解决方式: OAuth2.0 实现单点登录四种授权模式桥接模式优化问题代码实现 背景:(业务细节已脱敏) 基于实习期间的一个代码重构的思考——业务细节已脱敏 基于内部旧框架实现业务toB管理系统&#xff0c;需要迁移数据并新的…

uni-app 手记集。

1、uni-app 是一个使用 Vue.js 开发的前端应用的框架&#xff0c;所以不会Vue.js的小伙伴可以先去看看Vue.js的基础教学。 2、.vue文件结构 <template><div class"container"></div> </template><script type"text/ecmascript-6&q…