Исключение типа Microsoft.WindowsAzure.StorageClient.StorageClientException - PullRequest
0 голосов
/ 07 декабря 2010

Я пытаюсь написать простую программу для знакомства с Azure. Я получаю вышеуказанное исключение в строке CreateTableIfNotExist (..). Пожалуйста помоги. Вот код:

    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) в 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 продолжение)

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

Ответы [ 2 ]

0 голосов
/ 17 декабря 2010

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

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

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

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

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

0 голосов
/ 07 декабря 2010

Используете ли вы хранилище для разработки?В таком случае я настоятельно рекомендую прочитать Различия между хранилищем разработки и службами хранилища Windows Azure .

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

Обходной прием хранилища задокументирован здесь :

[Убедитесь, чтоХранилище таблиц знает о структуре ваших объектов.

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();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...