Asp.net-Mvc-4

Azure Blob 400 關於創建容器的錯誤請求

  • October 25, 2013

我正在開發一個 ASP.Net MVC 4 應用程序,並且我正在使用 Azure Blob 來儲存我的使用者要上傳的圖像。我有以下程式碼:

var storageAccount = CloudStorageAccount.Parse(ConfigurationManager.ConnectionStrings["StorageConnection"].ConnectionString);

var blobStorage = storageAccount.CreateCloudBlobClient();
//merchantKey is just a GUID that is asociated with the merchant
var containerName = ("ImageAds-" + merchant.merchantKey.ToString()).ToLower();
CloudBlobContainer container = blobStorage.GetContainerReference(containerName);
if (container.CreateIfNotExist())
   {
      //Upload the file
   } 

一旦 if 語句被執行,我就會得到以下異常:

 {"The remote server returned an error: (400) Bad Request."}

我以為這是容器的名稱,但我看不出有什麼問題。連接字元串似乎為 blob 創建了一個包含所有詳細資訊的良好儲存。我不知所措。我研究了網路,每個人都說這是一個命名問題,但我找不到任何問題。

我使用的測試容器名稱: imageads-57905553-8585-4d7c-8270-be9e611eda81

容器具有以下 uri:{http://127.0.0.1:10000/devstoreaccount1/imageads-57905553-8585-4d7c-8270-be9e611eda81}

更新: 我已將容器名稱更改為 just image,但仍然遇到相同的異常。開發連接字元串如下:<add name="StorageConnection" connectionString="UseDevelopmentStorage=true" />

我實際上最終發現了問題。

我的問題是 blob 儲存模擬器無法啟動(其他模擬器會啟動而我錯過了 blob)。問題最終是埠 10000(預設 blob 模擬器埠)已被另一個軟體使用。我使用Netstatcmd 工具查看它是哪個軟體,殺死它,它現在像一個魅力一樣工作!!!感謝大家!!

正如您通過研究發現的那樣,問題在於名稱。

您說您的測試容器已命名imageads-57905553-8585-4d7c-8270-be9e611eda81,但在您的程式碼中您正在使用ImageAds-57905553-8585-4d7c-8270-be9e611eda81. 注意大小寫的不同。如果您將容器名稱切換為全小寫,它將正常工作。

有關詳細資訊,請參閱命名和引用容器、Blob 和元數據中的容器名稱下的 #3 :

  1. 容器名稱中的所有字母必須小寫。

引用自:https://stackoverflow.com/questions/19599819