我有一種將文件上傳到Azure的方法到我的存儲帳戶。我的方法很簡單有沒有辦法阻止Azure存儲PutBlock方法超時?
blob = new CloudBlockBlob(new Uri(Uri));
var ms = new MemoryStream(block.Data);
blob.PutBlock(block.BlockId, ms, null)
但有時我PutBlock
拋出一個異常:
行動已在 Microsoft.WindowsAzure超時
堆棧跟蹤
.Storage.Core.Executor.Executor.ExecuteSync [T](RESTCommand`1 cmd,IRetryPolicy policy,OperationContext operationContext)\ r \ n at Microsoft.WindowsAzure.Storage.Blob.CloudBlockBlob.PutBlock(String blockId,Stream blockData ,字符串contentMD5,AccessCondition accessCondition,BlobRequestOptions選項的OperationContext 的OperationContext)
內部異常堆棧跟蹤
在System.Net.HttpWebRequest.GetRequestStream(了Transpo rtContext & 上下文)\ r \ n在System.Net.HttpWebRequest.GetRequestStream(個)\ r \ n
在 Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync [T](RESTCommand`1 CMD, IRetryPolicy政策,OperationContext操作上下文)「
這通常發生在我異步上傳一次說40個文件並且文件已經造成瓶頸。我顯然現在一次只限制一個文件。但我想知道爲什麼會發生這種情況,並且如果有防止它的方法,以便我知道它不會再發生,說一個普遍較慢的互聯網連接?
這些都是很好的一點。我已經將並行上傳次數減少到1次,所以希望這可以減少發生的機會。我也可以嘗試減小塊的大小,目前每塊是512字節。你怎麼知道默認超時是90秒?我試圖爲自己找到這個,但發現無用的 – user1 2015-02-09 12:24:14
蔚藍api上的msdn文檔更新了我的答案。 HTH。 – 2015-02-09 12:39:14
我只想爲遇到此問題的任何人添加此處。從我一直在看的Azure API沒有辦法增加默認的請求超時以及我的stacktrace的外觀,這是錯誤被拋出的地方。因此,我將嘗試減少塊大小和並行上傳數量。謝謝您的幫助 – user1 2015-02-09 14:37:26