匯出 (0) 列印
全部展開

在 Windows Azure 中設定 IIS 元件

更新日期: 2013年11月

您可以使用 Startup 項目指定用於設定 Web 角色環境的工作。部署至 Windows Azure 的應用程式通常會有一組需要安裝於主機電腦上的必要元件。您可以使用啟動工作安裝這些必要元件或修改環境的組態設定。依循這種方式可設定 Web 角色及背景工作角色。

note附註
Startup 項目可搭配 Windows Azure SDK 1.3 版及更新版本使用。

若要設定服務以執行啟動工作,必須將 Startup 節點加入至服務定義檔。Startup 節點指定所要執行的工作,通常是包含可自動執行之指令碼的 CMD 檔案。

下列程式碼範例所示範的啟動工作,將執行 CMD 指令碼檔案以設定 IIS Web 角色。

<?xml version="1.0" encoding="utf-8"?>
<ServiceDefinition name="IIS_Demo" xmlns="http://schemas.microsoft.com/ServiceHosting/2008/10/ServiceDefinition">
   <WebRole name="MyWebRole">
      <Startup>
         <Task commandLine="ConfigureIIS.cmd" executionContext="elevated" taskType="simple" />
      </Startup>
      <Sites>
         <Site name="Web">
            <Bindings>
               <Binding name="HttpIn" endpointName="HttpIn" />
            </Bindings>
         </Site>
      </Sites>
      <Endpoints>
         <InputEndpoint name="HttpIn" protocol="http" port="80" localPort="80" />
      </Endpoints>
   </WebRole>
</ServiceDefinition>

指定啟動工作時,可以選擇下列其中一個執行內容值:

  • Limited:以託管處理序之角色的相同權限執行。

  • Elevated:以系統管理員權限執行。

可用的工作類型值如下:

  • Simple (此為預設值):系統會等到工作結束後,才啟動任何其他工作。

  • Background:系統會逕行啟動其他工作,而不等候工作結束。

  • Foreground:與 Background 相似,不同之處在於角色會等到所有前景工作結束後才重新啟動。

note附註
啟動工作的命令檔及批次檔必須儲存成 ANSI 格式。系統無法正確地處理檔案開頭設有位元組順序標記的檔案格式。

為了支援 Windows Azure 應用程式,您可能必須安裝其他的伺服器元件或非 Microsoft 套件。在此情況下,可以使用 Microsoft Web Platform Installer (Web PI) 命令列工具執行這類工作。Web PI 是方便您取得 Microsoft Web Platform 最新元件 (包括 Internet Information Services (IIS)、SQL Server Express、.NET Framework 及 Visual Web Developer) 的工具,而且 Web PI 還可讓您輕鬆安裝及執行多種免費的 Web 應用程式。如需有關 Web PI 的詳細資訊,請參閱 Microsoft Web Platform Installer

如需有關 WebPiCmdLine 的詳細資訊,請參閱<使用 WebPICmd 命令列工具>。

使用者一般常會安裝的元件是超文字前置處理器 (PHP)。下列程序說明如何為您的服務安裝 PHP。此程序假設您已建立至少包含一個 Web 角色的 Windows Azure 專案。如需有關使用 Visual Studio 建立 Windows Azure 專案的詳細資訊,請參閱使用 Visual Studio 建立新的 Windows Azure 專案

  1. 下載 Web PI 命令列工具

  2. 將 WebpiCmdLine.exe、Microsoft.Web.Deployment.dll、Microsoft.Web.PlatformInstaller.dll 及 Microsoft.Web.PlatformInstaller.UI.dll 檔案解壓縮至 Windows Azure 專案的資料夾內。

  1. 在 Visual Studio 中開啟 Windows Azure 專案。

  2. [方案總管] 中展開方案。

  3. 按一下 Web 角色。按一下 [加入],然後按一下 [新增資料夾]

  4. 將資料夾命名為 startup

  5. 按一下 [startup] 資料夾。按一下 [加入],然後按一下 [現有項目]

  6. 巡覽至您解壓縮 Webcmdline 檔案所在的資料夾。選取其中三個 DLL 檔案和 EXE 檔案,然後按一下 [加入]

  7. 選取 startup 資料夾內的三個 DLL 檔案和 EXE 檔案。在屬性窗格中,將 [複製到輸出目錄] 設定為 [有更新時才複製]

在接下來的程序中,您將建立 CMD 檔案以做為啟動工作來執行。此命令檔會使用 Web PI 命令列安裝程式安裝 PHP 5.3。

  1. 開啟 [記事本] 或您慣用的文字編輯器。

    Warning警告
    由 Visual Studio 所建立的文字檔預設會儲存成包含位元組順序標記的格式,使得這類檔案無法以批次檔的形式執行。如果您使用 Visual Studio 建立命令檔,請從 [檔案] 透過 [另存新檔 <檔案名稱>] 的進階選項功能表,將檔案儲存成能夠在 Windows Azure 上執行的格式。若要存取進階選項功能表,請按一下 [儲存] 按鈕右側的小矩形,然後按一下 [以編碼方式儲存] 開啟 [進階儲存選項] 對話方塊。接著使用此對話方塊指定檔案的編碼方式。儲存成 [Unicode (UTF-8 無簽章) - 字碼頁 65001] 的命令檔將能正常執行。

  2. 複製下列命令並貼入檔案中。

    md "%~dp0appdata"
    reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d "%~dp0appdata" /f
    %~dp0webpicmdline /AcceptEula /Products:PHP53 >>log.txt 2>>err.txt
    reg add "hku\.default\software\microsoft\windows\currentversion\explorer\user shell folders" /v "Local AppData" /t REG_EXPAND_SZ /d %%USERPROFILE%%\AppData\Local /f
    
    
  3. 按一下 [檔案],然後按一下 [另存新檔]。輸入 InstallPHP.cmd,然後按一下 [儲存]

  4. [方案總管] 中展開方案。

  5. 按一下 [startup] 資料夾。按一下 [加入],然後按一下 [現有項目]

  6. 巡覽至您儲存 InstallPHP.cmd 檔案的資料夾。選取該檔案,然後按一下 [加入]

  7. 選取 startup 資料夾內的 InstallPHP.cmd 檔案。在屬性窗格中,將 [複製到輸出目錄] 設定為 [有更新時才複製]

  1. 在 [方案總管] 中,按兩下 [ServiceDefinition.csdef] 加以開啟。

  2. 在服務定義檔中找出您的 Web 角色。

  3. 複製下列 XML 程式碼片段,然後貼至 </WebRole> 標記前面。

    ...
        <Startup>
          <Task commandLine="startup\InstallPHP.cmd" executionContext="elevated" taskType="simple"/>
        </Startup>
    ...
    
  4. 儲存檔案。

完成後的 Windows Azure 專案方案大致如下。

VS 方案總管中的 Startup 資料夾

另請參閱

顯示:
© 2014 Microsoft