使用 Web Deploy 命令行在Cursor发布纯网页到服务器的IIS 站点
以下是具体操作步
✅ 步骤一:安装 Web Deploy
✅ 一、确认前置条件
Web Deploy 3.5 依赖于一些系统组件,请先确保以下内容已安装:
1. 安装 .NET Framework 3.5(含 2.0 和 3.0)
Web Deploy 需要 .NET Framework 3.5 支持。
**推荐方法(通过 Windows 功能):**
1. 按 `Win + S`,搜索 **“启用或关闭 Windows 功能”**,打开。
2. 找到 **.NET Framework 3.5 (包括 .NET 2.0 和 3.0)**,勾选它。
3. 点击 **确定**,系统会自动从网络下载所需文件(需要联网)。
4. 安装完成后重启电脑(如有提示)。
✅ 二、下载并安装 Web Deploy 3.5
1. 官方下载地址(推荐):
前往微软官方下载页面:
👉 [https://www.iis.net/downloads/microsoft/web-deploy](https://www.iis.net/downloads/microsoft/web-deploy)或者https://www.microsoft.com/en-us/download/details.aspx?id=106070
- 找到 **Web Deploy 3.5** 版本(通常为 `WebDeploy_amd64_en-US.msi`)。
- 下载适用于 x64 系统的安装包(Win11 多为 64 位)。
> 🔗 直接下载链接(可能变动,请以官网为准):
> [https://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/Setup/WebDeploy_amd64_en-US.msi](https://download.microsoft.com/download/0/1/D/01D06854-CA0C-46F1-ADBA-EBF86010DCC6/Setup/WebDeploy_amd64_en-US.msi)
2. 安装Web Deploy步骤:
1. 双击下载的 `.msi` 文件。
2. 按照安装向导操作:
- 接受许可协议。
- 选择安装路径(默认即可)。
- 选择组件(一般全选):
- Web Deployment Tool
- Management Service Delegation
- AppHost Config Extensibility
- 点击“安装”。
3. 等待安装完成,点击“完成”。
✅ 三.制作publish.bat
1. **确认 `msdeploy.exe` 路径**:
* 通常在 `C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe` 或 `C:\Program Files (x86)\IIS\Microsoft Web Deploy V3\msdeploy.exe`。
* 确保该路径已加入系统 `PATH` 环境变量,以便在任何地方调用。如果没加,记住完整路径。
2. **在 Cursor 中打开你的网页项目文件夹**。
3. **创建发布脚本**:
* 在项目根目录创建一个批处理文件(Windows)或 Shell 脚本(macOS/Linux),例如 `publish.bat` 或 `publish.sh`。
* **`publish.bat` 内容示例**:
* **说明**:
* `-source:contentPath="%CD%"`:将当前目录(Cursor 项目根目录)作为源。
* `-dest:contentPath="..."`:目标是 IIS 站点 `%SITE_NAME%`。
* `wmsvc="..."`:Web Deploy 服务的 URL。
* `authType="Basic"`:使用基本认证(传输密码,建议确保网络安全或使用 HTTPS)。
* `-allowUntrusted`:允许连接到使用自签名证书的服务器(常见于内部网络)。
* `-verb:sync`:执行同步操作,只传输更改的文件。
4. **在 Cursor 中执行发布**:
* 打开 Cursor 内置终端(Terminal)。
* 运行命令:.\publish.bat。
* 脚本会执行 `msdeploy` 命令,将你的网页文件同步到服务器。
以上是明文模式,下面介绍密文模式的发布方法
@echo off
:: 编码后的用户名和密码 (格式: domain\user 和 password)
:: 你可以用下面的 PowerShell 命令生成:
:: [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("服务器登陆用户名"))
:: [Convert]::ToBase64String([Text.Encoding]::UTF8.GetBytes("密码"))
set ENCODED_USERNAME=加密后的用户名放这里
set ENCODED_PASSWORD=加密后的密码放这里
for /f "delims=" %%i in ('powershell -Command "[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('%ENCODED_USERNAME%'))"'') do set USERNAME=%%i
for /f "delims=" %%i in ('powershell -Command "[Text.Encoding]::UTF8.GetString([Convert]::FromBase64String('%ENCODED_PASSWORD%'))"'') do set PASSWORD=%%i
set MSDEPLOY="C:\Program Files\IIS\Microsoft Web Deploy V3\msdeploy.exe"
set SERVER=https://127.0.0.7(服务器IP地址):8172/msdeploy.axd
set SITE_NAME=IIS站点名称
%MSDEPLOY% -source:contentPath="%CD%" -dest:contentPath="%SITE_NAME%",wmsvc="%SERVER%",username="%USERNAME%",password="%PASSWORD%",authType="Basic" -verb:sync -allowUntrusted
if %errorlevel% neq 0 (
echo 发布失败!
) else (
echo 发布成功!
)
pause
浙公网安备 33010602011771号