首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
您现在的位置: 程式碼之家 >> 編程語言 >  >> .NET 網頁程式設計 >> ASP.NET 基礎 >> 關於ASP.NET

AppVeyor CI + PowerShell 遠程部署 ASP.NET 應用與 Windows Service 全流程指南

     編輯:關於ASP.NET

項目結構

解決方案包含四個項目:

  • DemoApp.Web — ASP.NET MVC 前端
  • DemoApp.Web.Tests — 單元測試
  • DemoApp.Service — WCF 承載的 Windows Service 後端
  • DemoApp.Service.Tests — NUnit 測試

部署難點:Windows Service 無 Web Deploy 支持

Web 應用可用 Web Deploy,但 Windows Service 缺乏標準化部署工具。採用 AppRolla(PowerShell 部署框架)統一兩類應用部署:

  1. 打包應用為 Zip 上傳至外部存儲
  2. 目標機器通過 PowerShell Remoting 下載、解包
  3. 執行 PowerShell 腳本:更新配置、創建/更新網站與應用程序池、安裝/啟動服務

PowerShell Remoting 環境準備

  • 目標機開啟 WinRM,配置 HTTPS 監聽器(端口 5986),簽發 SSL 憑證
  • 防火牆放行 5986(HTTPS)及 5985(HTTP,測試用)
  • Azure VM 默認已啟用,僅需配置 NSG 規則
# 快速安裝 IIS 角色
Add-WindowsFeature -Name Web-Default-Doc,Web-Dir-Browsing,Web-Http-Errors,
Web-Static-Content,Web-Http-Logging,Web-Stat-Compression,Web-Filtering,
Web-Net-Ext,Web-Net-Ext45,Web-Asp-Net,Web-Asp-Net45,Web-ISAPI-Ext,Web-Mgmt-Console

AppVeyor CI 配置要點

# appveyor.yml 關鍵片段
build_script:
  - msbuild DemoApp.sln /p:Configuration=Release
  - .\deploy.ps1 -Environment Staging

deploy.ps1 內調用 AppRolla 模塊執行遠程部署任務。

核心優勢

  • 統一交付流程:Web 與 Service 同一套腳本部署
  • 配置外部化:環境差異通過參數文件注入,無需代碼變更
  • 可審計/可回滾:每次部署生成版本化包,支持藍綠部署

現代替代:當前主流採用 Docker 容器化 + Kubernetes/GitLab CI/CD,但 PowerShell Remoting 在純 Windows、Legacy 系統遷移場景仍具價值。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved