2016-01-07 88 views
2

我一直在嘗試通過我的計算機的Azure存儲模擬器創建表格。我可以只使用WindowsAzure.Storage的NuGet版本6.2.0一個非常簡單的程序重現問題:在Azure存儲模擬器中創建表格會產生HTTP 500錯誤

using Microsoft.WindowsAzure.Storage; 

namespace StorageEmulatorTest 
{ 
    internal class Program 
    { 
     private static void Main(string[] args) 
     { 
      var cloudStorageAccount = CloudStorageAccount.Parse("UseDevelopmentStorage=true"); 
      var cloudTableClient = cloudStorageAccount.CreateCloudTableClient(); 
      cloudTableClient.GetTableReference("JohnnyTest").CreateIfNotExists(); 
     } 
    } 
} 

其25秒鐘後,這將引發Microsoft.WindowsAzure.Storage.StorageException類型的異常,只有這條消息:

The remote server returned an error: (500) Internal Server Error.

我曾嘗試:

  1. 確保我WindowsAzure.Storage NuGet包是最新的版本(6.2.0)。
  2. 重新安裝在Azure SDK的VS2015 2.8.1(並確保它是最新版本)
  3. 停車,結算,通過Azure存儲模擬器的命令行工具INITING的Azure存儲模擬器(似乎做工精細,無錯誤)
  4. 通過異常的「.InnerException.Response.GetResponseStream()」讀取Web響應的流。這會失敗,並顯示「流不可讀」的異常。
  5. 重新啓動我的機器(絕望踢)

我的錦囊已所剩無幾。有沒有人遇到過這個問題?

+0

請用'UseDevelopmentStorage = true; DevelopmentStorageProxyUri = http://127.0.0.1;'試試。 –

+0

感謝您的想法。但是,它沒有改變行爲。 –

回答

2

我解決了它。我不得不徹底清除現有的本地存儲模擬實例。使用「AzureStorageEmulator.exe清除」或「AzureStorageEmulator.exe初始化」不足。即使卸載Azure SDK也不足。

我開始停止存儲仿真:

AzureStorageEmulator.exe stop 
AzureStorageEmulator.exe clear 
AzureStorageEmulator.exe init /forceCreate 

最後一個命令出錯,並表示它不能創建數據庫。

然後我刪除(實際上,我改名它們),其包含在天青存儲模擬器後面的數據庫中的這些剩餘的文件:

  • C:\ Users \ [用戶本人] \ AzureStorageEmulatorDb42_log.ldf
  • C:\用戶\ [我] \ AzureStorageEmulatorDb42_log.mdf

最後,我開始模擬器備份

AzureStorageEmulator.exe init /forceCreate 
AzureStorageEmulator.exe start 

成功!

我不確定是什麼讓我陷入了這種情況,但我最好的猜測是這是由Azure SDK的最近升級引起的。

+0

嗨,我最近遇到了一個問題,其中GET模擬器表存儲但POST和PUT不工作。結果底層數據庫已滿。上面的答案可以解決我的問題,但是我通過啓用日誌並且寫了一篇關於它的博客文章(如果這可以幫助某人)來深入研究:https:// oliviervaillancourt。COM /職位/ Azure的存儲在線仿真器,故障排除。謝謝 –

相關問題