匯出 (0) 列印
全部展開

讓啟動工作在計算模擬器和雲端上執行不同的動作

更新日期: 2013年11月

您可以讓啟動工作在下面這兩種狀況下執行不同的步驟:當啟動工作在雲端運作時,以及當它在計算模擬器上運作時。

當您在雲端或在計算模擬器上執行作業時,有時候會需要在啟動時讓啟動工作執行不同的工作。例如,在計算模擬器上執行作業時,您可能會想要在啟動時使用全新的 SQL 資料複本,但在雲端時則不需執行那樣的步驟。另一個情況是:您可能會想要在計算模擬器上執行偵錯步驟,但不要在雲端上執行偵錯,而且在雲端上執行的效能最佳化步驟可能在計算模擬器上是沒有幫助且不需要的。雖然許多努力都是投入於讓計算模擬器和雲端在本質上表現出一樣的行為,但這兩者還是會有些許的差異,而需要在計算模擬器上以及在雲端上執行作業時讓它們於啟動期間執行不同的步驟。計算模擬器與雲端之間的這些差異會在<Differences Between the Compute Emulator and Windows Azure>中描述。

您可以在 ServiceDefinition.csdef 檔案中建立環境變數,然後在啟動工作中測試此環境變數,來達成讓計算模擬器與雲端執行不同動作的目的。

若要建立此環境變數,請在 ServiceDefinition.csdef 檔的 Startup 區段中加入 Environment 區段和 Variable 區段。用於啟動工作的環境變數的 Variable 項目必須具有唯一名稱。在這個範例中,環境變數是命名為 ComputeEmulatorRunning。在 ServiceDefinition.csdef 檔的 Variable 區段中加入 RoleInstanceValue 項目,並讓此項目的 xPath 屬性等於 "/RoleEnvironment/Deployment/@emulated"。這個 xPath 屬性在功能上相當於 String ComputeEmulatorRunning = RoleEnvironment.IsEmulated.ToString().ToLower(); 陳述式

在此範例中,如果是在計算模擬器上執行,ComputeEmulatorRunning 環境變數的值是 "true",如果是在雲端上執行,其值為 "false"

    <Startup>
      <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
        <Environment>
          
          <!-- Create the environment variable that informs the startup task whether it is running 
               in the Compute Emulator or in the cloud. "%ComputeEmulatorRunning%"=="true" when 
               running in the Compute Emulator, "%ComputeEmulatorRunning%"=="false" when running 
               in the cloud. -->

          <Variable name="ComputeEmulatorRunning">
            <RoleInstanceValue xpath="/RoleEnvironment/Deployment/@emulated" />
          </Variable>

        </Environment>
      </Task>
    </Startup>

依據 Startup.cmd 批次檔是在雲端上執行或在計算模擬器上執行,Startup.cmd 批次檔會使用 ComputeEmulatorRunning 環境變數來執行不同的動作。

REM   Check if this task is running on the compute emulator.

IF "%ComputeEmulatorRunning%" == "true" (
    REM   This task is running on the compute emulator. Perform tasks that must be run only in the compute emulator.
) ELSE (
    REM   This task is running on the cloud. Perform tasks that must be run only in the cloud.
)

另請參閱

顯示:
© 2014 Microsoft