我有一部分代碼用於將文本上傳到Azure blob存儲。它使用CloudBlobClient.GetContainerReference().GetBlobReference().UploadText()
。無法從ASP.NET MVC內部寫入blob存儲
string connectionString = RoleEnvironment.GetConfigurationSettingValue("StorageConnectionString");
CloudStorageAccount account = CloudStorageAccount.Parse(connectionString);
CloudBlobClient blobClient = account.CreateCloudBlobClient();
CloudBlobContainer container = client.GetContainerReference(containerName);
container.CreateIfNotExist();
DateTime currentTime = DateTime.UtcNow;
String instanceId = RoleEnvironment.CurrentRoleInstance.Id;
int threadId = System.Threading.Thread.CurrentThread.ManagedThreadId;
String blobPath = String.Format("error-{0}-{1}-{2}", currentTime.Ticks, instanceId, threadId);
container.GetBlobReference(blobPath).UploadText(textToUpload);
到目前爲止代碼工作正常。現在,我將該代碼的調用添加到ASP.NET MVC2應用程序的各個位置以調試後者,並且代碼默默無聞 - 沒有例外,沒有新的Blob,也沒有任何內容。如果我試圖獲得
String justUploaded = container.GetBlobReference(blobPath).DownloadText(textToUpload);
之後並在網頁上發佈結果 - 沒有異常,並且字符串爲空。如果我試圖獲得
String uri = container.GetBlobReference(blobPath).Uri.ToString();
再次沒有例外,字符串是空的。
與包含MVC應用程序的相同Web角色的OnStart()
中的上傳代碼完全相同。
寫入Blob存儲不能正常工作的可能原因是什麼?我該如何解決這個問題?
您是否在Global.asax Application_Start事件處理程序中調用了Microsoft.WindowsAzure.CloudStorageAccount.SetConfigurationSettingPublisher方法? –
@Yuriy Rozhovetskiy:現在我確實有,但它沒有幫助。 – sharptooth
你是如何創建CloudStorageAccount實例的? –