天天看點

【Azure雲服務 Cloud Service】如何在部署雲服務Cloud Service時候通過啟動任務Start Task來配置IIS (如開啟ARR)

問題情形

通過VS部署Cloud Service時,需要在開始任務時候安裝或配置其他任務,如安裝及配置ARR。

執行步驟

1) 下載下傳 requestRouter_amd64.msi 和 webfarm_v1.1_amd64_en_US.msi, 為安裝ARR的必要項。

Web Farm: http://download.microsoft.com/download/5/7/0/57065640-4665-4980-A2F1-4D5940B577B0/webfarm_v1.1_amd64_en_US.msi

ARR: https://www.iis.net/downloads/microsoft/application-request-routing#additionalDownloads

2) 把下載下傳後的安裝檔案包含在Cloud Service的項目檔案中,并且在屬性中設定“Always Copy”,這一步是為了能夠把安裝檔案包含在部署檔案中。

【Azure雲服務 Cloud Service】如何在部署雲服務Cloud Service時候通過啟動任務Start Task來配置IIS (如開啟ARR)

3) 建立一個安裝檔案 InstallARR.cmd (與web.config在同一級目錄中), 在檔案裡面,我們通過 msiexec來安裝.msi檔案

d /d "%~dp0"

msiexec /i ARRInstall\webfarm_v1.1_amd64_en_US.msi /qn /log C:\installWebfarmLog.txt

ping -n 30 127.0.0.1

msiexec /i ARRInstall\requestRouter_amd64.msi /qn /log C:\installARRLog.txt

ping -n 30 127.0.0.1

%windir%\system32\inetsrv\appcmd.exe set config

    -section:system.webServer/proxy /enabled:"True" 

    /commit:apphost >> C:\setProxyLog.txt

exit /b 0      

(PS:因為安裝過程需要一定的時間,是以使用ping -n 30 來等待30秒,可以根據實際情況做一定的調整)

4) 在雲服務的ServiceDefinition.csdef配置檔案中,添加啟動任務。

<Startup>
      <Task commandLine="InstallARR.cmd" executionContext="elevated" taskType="background" />
  </Startup>      

更多的StartUp task,請參考: https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-startup-tasks-common

5) 等釋出成功後,RDP到執行個體上,然後檢視IIS中是否已經安裝好ARR.

【Azure雲服務 Cloud Service】如何在部署雲服務Cloud Service時候通過啟動任務Start Task來配置IIS (如開啟ARR)

參考文檔:

https://docs.microsoft.com/en-us/azure/cloud-services/cloud-services-startup-tasks-common

https://subodhpatil.wordpress.com/2015/03/12/install-arr-on-azure-paas-vm/

https://robindotnet.wordpress.com/2011/07/21/how-to-install-iis-application-request-routing-in-windows-azure/

當在複雜的環境中面臨問題,格物之道需:濁而靜之徐清,安以動之徐生。 雲中,恰是如此!

繼續閱讀