程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> .NET網頁編程 >> ASP.NET >> 關於ASP.NET >> 使用AppVeyor CI 和PowerShell部署應用概述

使用AppVeyor CI 和PowerShell部署應用概述

編輯:關於ASP.NET

開頭語

關於如何為單一的ASP.NET web應用程序設置持續集成,你可以找到很多文章。這些文章都寫到如何通過Web Deploy來構建完美的環境來部署簡單、只需稍作修改VS.NET模板的web應用程序。任何東西在這一完美環境下都能順利進行。

但是,真正部署應用程序的話卻並非易事。總是有問題不斷出現在以下情況中:當需要在注冊表(Registry)或自定義文件夾中配置設置,或者你需要部署到Web集群時。

本文中,我們通過使用PowerShell遠程處理(PowerShell remoting)和AppVeyor CI為帶有ASP.NET web應用程序和Windows Service的解決方案在其暫存(staging)和產品環境中配置持續集成。

解決方案概述

我們的示例中包含4個項目:

DemoApp.Web -ASP.NET應用程序,前端

DemoApp.Web.Tests -使用VisualStudio測試框架的web應用程序單元測試

DemoApp.Service -承載WCF服務的Windows service,後端

DemoApp.Service.Tests -使用NUnit框架的Windows service單元測試

該示例應用程序的代碼庫托管於BitBucket:

我們到底將如何部署?

我們遇到的第一個問題就是如何部署Windows service?我們沒有針對Windows service的“發布”菜單,也沒有相應的配置轉換。根本沒法用Web Deploy。為了自動化項目的部署,我們將使用PowerShell部署框架 - AppRolla。

AppRolla利用PowerShell遠程處理在目標機器上執行部署任務。部署任務將下載應用程序包,解包,更新配置設置,然後創建或更新應用程序網站及pool。該應用程序包僅僅是帶有應用程序文件夾的壓縮包,通過HTTP上傳到外部存儲。其內部並沒有任何特別之處 - 模塊寫在PowerShell內,很容易查看和修改。

為了讓你對PowerShell部署一睹為快,我們現在就建立一個簡單web應用程序,並將其部署到服務器上。

整個流程中最具挑戰性的部分可能就是設置帶有SSL認證的PowerShell遠程處理了。我們強烈建議使用HTTPS與遠程服務器進行通信,因為所有的數據流量都是加密的。

當你在Windows Azure 上創建新的虛擬機時,PowerShell遠程會自動被激活和配置。防火牆將允許PowerShell遠程HTTPS端點端口5986,另外我們也將HTTP端點添加到示例服務器上:

如果你需設置其它服務,可以參照該鏈接裡的具體細節:guide on how to configure PowerShell remoting。

為了在實例機器上快速安裝IIS7.5,我們使用以下PowerShell命令:

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

我們創建帶有“Hello world”的簡單Web應用程序,然後將其部署到示例服務器。

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved