匯出 (0) 列印
全部展開

使用本機儲存體在啟動期間儲存檔案

更新日期: 2014年5月

您可以使用本機儲存體資源來儲存啟動工作所建立的檔案,您的應用程式稍後會存取這些檔案。

若要在啟動工作中使用本機儲存體資源,您必須在 ServiceDefinition.csdef 檔案中建立 LocalStorage 項目,然後再建立環境變數以參考本機儲存體資源的位置。這樣啟動工作和應用程式就可以在本機儲存體資源中讀取和寫入檔案。

若要建立本機儲存體資源,您必須編輯 ServiceDefinition.csdef 檔案。如果 ServiceDefinition.csdef 檔案中不存在 LocalResources 區段,就要加入 LocalResources 區段。然後在 LocalResources 區段內加入 LocalStorage 項目。為本機儲存體資源設定一個唯一名稱和適當的大小 (適用於您的啟動工作)。在本範例中,此唯一名稱是 StartupLocalStorage

若要建立會參考本機儲存體位置的環境變數,請在 ServiceDefinition.csdef 檔案的 Startup 區段中加入 Environment 區段和 Variable 區段。用於啟動工作的環境變數的 Variable 項目必須具有唯一名稱。在這個範例中,環境變數是命名為 PathToStartupStorage

ServiceDefinition.csdef 檔的 Variable 區段中加入 RoleInstanceValue 項目。xPath 屬性必須使用和本機儲存體資源相同的唯一名稱,就像在 LocalStorage 項目中所參考的一樣。本機儲存體資源的唯一名稱必須放在 @name= 後面,並且必須以單引號括住。在這個範例中,xPath 屬性是 "/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='StartupLocalStorage']/@path",並且包含本機儲存體資源名稱 StartupLocalStorage

ServiceDefinition.csdef 檔案的相關區段如下所示:

  <!-- Create the Local Storage used by the startup task. -->
  <LocalResources>
   <LocalStorage name="StartupLocalStorage" sizeInMB="5"/>
  </LocalResources>
  
  <Startup>
   <Task commandLine="Startup.cmd" executionContext="limited" taskType="simple">
    <Environment>
     
     <!-- Create the environment variable that informs the startup task where to find its Local 
        Storage. %PathToStartupStorage% resolves to the fully qualified path to the location 
        of the Local Storage.-->
     <Variable name="PathToStartupStorage">
      <RoleInstanceValue xpath="/RoleEnvironment/CurrentInstance/LocalResources/LocalResource[@name='StartupLocalStorage']/@path" />
     </Variable>
     
    </Environment>
   </Task>
  </Startup>

Startup.cmd 批次檔會使用 PathToStartupStorage 環境變數在本機儲存體位置建立 MyTest.txt 檔案,如下所示:

REM  Create a simple text file.
ECHO This text will go into the MyTest.txt file which will be in the  > "%PathToStartupStorage%\MyTest.txt"
ECHO path pointed to by the PathToStartupStorage environment variable. >> "%PathToStartupStorage%\MyTest.txt"
ECHO The contents of the PathToStartupStorage environment variable is  >> "%PathToStartupStorage%\MyTest.txt"
ECHO "%PathToStartupStorage%".                     >> "%PathToStartupStorage%\MyTest.txt"
REM  Exit the batch file with ERRORLEVEL 0.
EXIT /b 0

若要存取本機儲存體資源,應用程式必須從 GetLocalResource 方法擷取路徑。標準的檔案讀取和寫入作業就會運作,以讀取及寫入本機儲存體資源的內容。下面範例會示範如何從本機儲存體資源讀取 MyTest.txt 的內容,並將其顯示在 MVC 3 應用程式的首頁:

using Microsoft.WindowsAzure.ServiceRuntime;
using System;
using System.Text;
using System.Web.Mvc;
namespace StartupExercise.Controllers
{
  public class HomeController : Controller
  {
    public ActionResult Index()
    {
      string SlsPath = RoleEnvironment.GetLocalResource("StartupLocalStorage").RootPath;
      string s = System.IO.File.ReadAllText(SlsPath + "\\MyTest.txt");
      ViewBag.Message = "Contents of MyTest.txt = " + s;
      return View();
    }
  }
}

另請參閱

顯示:
© 2014 Microsoft