2017-01-13 55 views
1

有沒有辦法找到有關Azure存儲爲什麼會拒絕郵件的更多詳細信息?通過Azure打開調試的一些方法?更多細節通過線鯊?如何在將文件上傳到Azure CDN時獲取有關400錯誤請求錯誤的更多信息

這種情況從CloudFile.UploadFromStream(...)

嘗試將文件上傳到Azure的​​時,我已經試過了400錯誤的請求約8的解決方案。看起來人們指出了代碼的問題,以錯誤沒有表達的各種方式。

我已經花了,沒有運氣約4小時,並沒有更具體的瞭解一下。

請注意,我還沒有發佈的代碼,因爲我不是在尋找一個解決我的具體問題儘可能發現我可以在更多的情況下使用的解決方案。

回答

3

我會建議調查StorageException類,尤其是RequestInformation該類的成員是類型RequestResult。它包含有關錯誤的有用信息。

下面是一個例子。

static void UnderstandStorageException() 
    { 
     var cred = new StorageCredentials(accountName, accountKey); 
     var account = new CloudStorageAccount(cred, true); 
     var client = account.CreateCloudBlobClient(); 
     var container = client.GetContainerReference("container"); 
     var blockBlob = container.GetBlockBlobReference("something.txt"); 
     try 
     { 
      blockBlob.UploadFromFile(@"D:\test.txt"); 
      blockBlob.AcquireLease(TimeSpan.FromSeconds(10), Guid.NewGuid().ToString()); 
      blockBlob.Delete(); 
     } 
     catch (StorageException excep) 
     { 
      var requestInformation = excep.RequestInformation; 
      Console.WriteLine(requestInformation.HttpStatusCode); 
      Console.WriteLine(requestInformation.HttpStatusMessage); 
      Console.WriteLine(requestInformation.ExtendedErrorInformation.ErrorCode); 
      Console.WriteLine(requestInformation.ExtendedErrorInformation.ErrorMessage); 
     } 
    } 

在這種情況下,我試圖獲得blob的租約,但我指定了10秒作爲無效輸入的租期。這將導致來自Azure存儲的400狀態碼。當我執行代碼時,我得到以下信息:

HTTP Status Code: 400 
HTTP Status Message: The value for one of the HTTP headers is not in the correct format. 
Storage Error Code: InvalidHeaderValue 
Storage Error Message: The value for one of the HTTP headers is not in the correct format. 
RequestId:04969aab-0001-001c-5965-6df5fe000000 
Time:2017-01-13T06:23:25.4667820Z 
+0

謝謝!這給了我可以用來改善我的搜索的一些即時信息。 –

相關問題