2010-12-07 4 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 [Т] (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 параметры) на 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 продолжение)

Кроме того, я вижу на веб-странице, что «ресурс не найден». Не уверен, какой ресурс он ищет.

ответ

0

Ну, я, наконец, прошел мимо ошибки сегодня. Надеемся, что информация ниже помогает остальным вам. Не уверен, что я делаю неправильно раньше, но я просто убедился:

  1. Я оставил его в покое на несколько дней;)
  2. приложение запускается с VisualStudio 2010 в ADMIN режиме.
  3. Проект Azure (тот, у которого есть синий глобус) установлен как объект запуска. Следовательно, нажмите F5 для запуска всего приложения.
  4. Запущен ваш эмулятор эмуляции и эмулятор хранения (проверьте лоток sys в правом нижнем углу экрана).

Я уверен, что все это было покрыто, когда я получил ошибку раньше, но я не всегда могу доверять себе.

Надеюсь, это поможет.

И спасибо Стив Марксу за nice demo code и pdc video. Действительно помог мне научиться чему-то.

0

Вы используете хранилище для разработки? Если это так, я настоятельно рекомендую вам прочитать Differences Between Development Storage and Windows Azure Storage Services.

Это звучит, как вы ударяете вопрос, который является уникальным для хранения развития, в котором вы не можете запросить таблицу, которая никогда не содержащуюся любые объектов:

в хранении развития, запрашивая на имуществе, которое не существует в таблице возвращается ошибка. Такой запрос не возвращает ошибку в облаке.

DEV хранение обходного документирована 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

Смежные вопросы