2010-12-07 72 views
0

我正在嘗試編寫一個簡單的程序來熟悉Azure。我在CreateTableIfNotExist(..)行上得到上述異常。請幫忙。 下面是代碼:引發Microsoft.WindowsAzure.StorageClient.StorageClientException類型的異常

public ActionResult Index() 
    { 
     var client = CloudStorageAccount.DevelopmentStorageAccount.CreateCloudTableClient(); 

     var success = client.CreateTableIfNotExist("Messages"); 

     var svc = client.GetDataServiceContext(); 


     //"Messages" is the name of the table 
     return View(svc.CreateQuery<Message>("Messages").AsTableServiceQuery()); 
    } 

這裏是堆棧跟蹤:

在Microsoft.WindowsAzure.StorageClient.Tasks.Task 1.get_Result() at Microsoft.WindowsAzure.StorageClient.Tasks.Task 1.ExecuteAndWait() 在Microsoft.WindowsAzure.StorageClient.TaskImplHelper .ExecuteImpl [T](Func 2 impl) at Microsoft.WindowsAzure.StorageClient.CloudTableClient.CreateTableIfNotExist(String tableName) at MvcWebRole1.Controllers.HomeController.Index() in C:\tests\AzureDemo\MvcWebRole1\Controllers\HomeController.cs:line 18 at lambda_method(Closure , ControllerBase , Object[]) at System.Web.Mvc.ActionMethodDispatcher.Execute(ControllerBase controller, Object[] parameters) at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext,ActionDescriptor actionDescriptor,IDictionary 2 parameters) at System.Web.Mvc.ControllerActionInvoker.<>c__DisplayClassd.<InvokeActionMethodWithFilters>b__a() at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethodFilter(IActionFilter filter, ActionExecutingContext preContext, Func 1 continuation)

此外,我在網頁上看到,它顯示'找不到資源'。不知道它正在尋找什麼資源。

回答

0

好了,我今天終於跳過了錯誤。希望下面的信息有助於你的其他人。不知道我以前做錯了,但我只是確信:

  1. 我離開它單獨幾天;)
  2. 該應用程序與2010的VisualStudio中ADMIN模式下運行。
  3. Azure項目(帶藍色地球的項目)被設置爲啓動對象。因此,按F5運行整個應用程序。
  4. 啓動您的計算模擬器和存儲模擬器(檢查屏幕右下角的系統托盤)。

我非常肯定,當我得到錯誤之前,我已經涵蓋了所有這些,但我不能總是相信自己。

希望這會有所幫助。

並感謝Steve Marx爲nice demo codepdc video。真的幫助我學習東西。

0

您使用的是開發存儲?如果是的話,我強烈建議你閱讀Differences Between Development Storage and Windows Azure Storage Services

這聽起來像你打,是獨特的發展存儲在其中您無法查詢,永遠不會包含任何實體表中的問題:

在開發存儲,查詢對不存在的屬性在表中返回一個錯誤。這樣的查詢不會在雲中返回錯誤。

一個開發存儲解決方法進行了說明here

[E] nsure該表存儲知道你的對象的結構。

var query = from x in context.CreateQuery(VehicleTableName) select x; 
var l = query.ToList(); 
var v = new Vehicle(); 
context.AddVehicle(v); 
context.SaveChanges(); 
context.DeleteObject(v); 
context.SaveChanges(); 
+0

是的,他正在使用開發存儲(請參閱代碼)。但是,CreateTableIfNotExist上的例外情況,所以我不認爲這是問題。 – smarx 2010-12-07 19:40:33

相關問題