我試圖將我的站點的所有文件檢索都移動到Azure存儲(據推測,由於路徑問題,檢索文件的可能性較小)。這聽起來不容易。我能夠到達存儲帳戶和容器並將blob加載到變量中,但我找不到任何方式將內容導入到XDocument中。我已經嘗試了幾乎所有與在我的blob變量的intellisense下顯示的文件相關聯的方法。從Azure存儲中加載XDocument的正確方法是什麼
[TestMethod]
public void TestMethod1()
{
var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.AppSettings["azurestorageconn"]);
var client = storageAccount.CreateCloudBlobClient();
//create a blob container with public accessibility
var sampleContainer = client.GetContainerReference(ConfigurationManager.AppSettings["azurecontainer"]);
sampleContainer.CreateIfNotExists();
sampleContainer.SetPermissions(new BlobContainerPermissions()
{
PublicAccess = BlobContainerPublicAccessType.Blob
});
var blob = sampleContainer.GetBlockBlobReference(@"files\" + NavXmlFile);
XDocument xDoc;
//tried almost everything here
using (var xml = blob.OpenRead())
{
xDoc = XDocument.Load(xml);
}
Assert.IsNotNull(xDoc);
}
我似乎無法找到進入的XDocument或的XElement的加載XML文件內容的任何實例在網絡上或任何地方SO這裏。任何幫助讚賞。
不是說它應該重要,但這裏是一個xml文檔的示例。
<Menus>
<Menu>
<MenuId>1</MenuId>
<ParentMenuId>0</ParentMenuId>
<MenuTitle>Home</MenuTitle>
<DisplayOrder>10</DisplayOrder>
<MenuAction>/Home/Index</MenuAction>
<MenuRoles></MenuRoles>
</Menu>
<Menu>
<MenuId>2</MenuId>
<ParentMenuId>0</ParentMenuId>
<MenuTitle>Languages</MenuTitle>
<DisplayOrder>20</DisplayOrder>
<MenuAction></MenuAction>
<MenuRoles></MenuRoles>
</Menu>
</Menus>
您是否收到任何錯誤的代碼? –
@Gaurav Mantri ...我不會發布,否則,xml = blob.OpenRead行上的Azure存儲異常。無論我嘗試提取內容的方法是哪裏,都會發生錯誤。在這個特定的實例中,錯誤是Microsoft.WindowsAzure.Storage.StorageException:遠程服務器返回錯誤:(404)Not Found。 ...哪些男性沒有意義,因爲檢查blob可以看到它擁有我請求的文件中的xml。 – dinotom
感謝您分享錯誤的詳細信息。 404錯誤意味着未找到blob。我注意到這就是你如何引用blob:'var blob = sampleContainer.GetBlockBlobReference(@「files \」+ NavXmlFile);'。你可以改變它:'var blob = sampleContainer.GetBlockBlobReference(@「files /」+ NavXmlFile);'?如果您注意到,我將「\」更改爲「/」。試試看看會發生什麼。 –