簡體   English   中英

.NET Web應用程序和Windows服務自動部署

[英].NET Web Application and Windows Service Automatic Deployment

這兩個項目需要通過VPN部署到多個環境。 隨着時間的推移,將需要其他環境

當前部署策略:

使用CCNet進行構建自動化。

Web應用程序:

  • Web部署包
  • 的MSBuild
  • 網絡部署

Windows服務:

  • 的MSBuild
  • RoboCopy +網絡共享
  • MSBuild Extension Pack可以(取消)安裝啟動/停止服務

當前策略存在的問題:

  • Web Deploy需要安裝在所有目標Web服務器上。
  • IIS配置:(遠程管理服務,用戶,委派規則)
  • 服務文件復制和安裝所需的凈共享
  • MSBuild擴展包依賴性
  • 禁用UAC進行服務安裝

總體而言,這似乎並不壞,但是考慮到需要針對許多環境進行設置,這很快就成為問題。

另外,創建網絡共享,禁用UAC,IIS遠程管理服務也可能被視為安全問題。

尋找一種方式來部署Web應用程序以及具有較少配置要求的Windows服務。

備擇方案?

CCNET構建發布者

而不是Web部署程序包。

將刪除Web Deploy依賴關系,但不確定它是否可以在VPN上運行,並且看不到指定用戶名/密碼的方法。

SC.EXE

安裝/卸載服務。

將刪除MSBuild Extension Pack和Robo Copy依賴項。

這似乎在域計算機上正常工作,但也不確定VPN連接,在這種情況下,UAC似乎也是一個問題。

電源外殼?

更新:

使用Powershell管理安裝服務: http : //www.geoffhudik.com/tech/2012/3/22/install-a-windows-service-remotely-with-powershell.html

一種方法。 在Windows 7上使用MapNetworkDrive創建驅動器共享時出現問題,因此我必須使用net use來完成此操作。仍在考慮替代方法。

對於復制文件,您可以使用UNC共享來獲得結果。 假定可以選擇使用UNC,這將滿足減少服務器中安裝工具要求的需求。

其他選項可能是:

  1. 在服務器上安裝ftp並通過ftp上傳文件
  2. 編寫一個接受zip文件(或一系列文件)的服務/ webapp-在這一點上,您基本上是在重塑ftp或web部署。

至於安裝/更新Windows服務,您很可能需要某種托管服務來協調與Windows的關聯。

其他選項可能是:

  1. 復制文件(通過ccnet構建)后,使用psexec運行sc.exe。
  2. 編寫以足夠高的特權運行的服務/ webapp,以通過.net安裝和控制服務

這些只是選項,不是建議,就我個人而言,我認為WebDeploy就足夠了。 它提供的安全性和安全性遠遠超過了安裝WebDeploy的痛苦。 就我個人而言,我不希望任何UNC訪問或訪問我的服務器(無論是否安全網絡),因此我不建議您使用此選項。

一種可能的解決方案可能是:

  1. 使用WebDeploy發行新的/更新的站點文件; WebDeploy可以根據需要創建新的網站和應用程序。 您還應該能夠將其重新用於Windows服務。
  2. 對於Windows服務,請使用WebDeploy runCommand提供程序在更新前后停止和啟動服務,請參閱http://technet.microsoft.com/zh-cn/library/ee619740(v=WS.10).aspx

只要在服務器和ccnet服務器上安裝WebDeploy,就應該可以做到這一點。

不需要IIS遠程管理,文件共享和msbuild(及其包),從而減少了一些配置。 WebDeploy的安裝和配置可以自動進行: http ://www.iis.net/learn/publish/using-web-deploy/powershell-scripts-for-automating-web-deploy-setup

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM