1
如何在azure和Blob上託管的asp.net web應用程序之間創建連接? 當我從我的本地主機上傳文件到blob時,連接工作正常。 但是,當我在azure上發佈網絡應用程序時,該應用程序無法將文件存儲在blob中。我能想到的,爲什麼文件沒有得到上傳的唯一原因是因爲某種連接問題的託管asp.net web應用程序和BLOB之間ASP.net與blob的連接
BlobStorageServices.cs
public class BlobStorageServices
{
public CloudBlobContainer GetCloudBlobContainer()
{
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(RoleEnvironment.GetConfigurationSettingValue("ImageStorageAccountConn"));
CloudBlobClient blobClient = storageAccount.CreateCloudBlobClient();
CloudBlobContainer blobContainer = blobClient.GetContainerReference("myimages");
if (blobContainer.CreateIfNotExists())
{
blobContainer.SetPermissions(new BlobContainerPermissions { PublicAccess = BlobContainerPublicAccessType.Blob });
}
return blobContainer;
}
}
的HomeController的的.cs
BlobStorageServices _blobStorageService = new BlobStorageServices();
[HttpPost]
public ActionResult Upload(HttpPostedFileBase image)
{
if (image.ContentLength > 0)
{
CloudBlobContainer blobContainer = _blobStorageService.GetCloudBlobContainer();
CloudBlockBlob blob = blobContainer.GetBlockBlobReference(image.FileName);
blob.UploadFromStream(image.InputStream);
}
return RedirectToAction("Index");
}
Index.cshtml
<h2>Upload Image</h2>
<p>
@using (Html.BeginForm("Upload", "Home", FormMethod.Post, new { enctype = "multipart/form-data" }))
{
<input type="file" name="image" />
<input type="submit" value="Upload" />
}
</p>
不確定當我們通過visual studio發佈asp.net應用程序時,BlobStorageServices.cs文件是否會上傳到azure。 ImageStorageAccountConn是連接字符串。
這是在web/worker角色實例中運行嗎?或VM?或Web應用程序(應用程序服務)?你提到了web應用程序,但是你有一個叫'角色環境'的電話 –
謝謝大衛。我刪除了RoleEnvironment並且它現在可用。 自從最近2天以來,我一直在努力。 :/ – Chetan