Azure Blob 400 關於創建容器的錯誤請求
我正在開發一個 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 :
- 容器名稱中的所有字母必須小寫。