Не удается использовать Azure TableStorageMembershipProvider из консольного приложения (и mstest) - PullRequest
0 голосов
/ 01 марта 2011

В создаваемом веб-приложении я использую пример кода TableStorageMembershipProvider (загружен с здесь ) для управления пользователями. Я правильно настроил web.config и все работает отлично.

Теперь я хочу написать несколько тестов, поэтому я создаю тестовый проект, ссылаюсь на dll TableStorageMembershipProvider, копирую соответствующие разделы из web.config в app.config и пишу один простой тест. Проблема в том, что когда я в первый раз нажимаю код участника, выдается следующая ошибка:

Could not load type 'Microsoft.Samples.ServiceHosting.AspProviders.TableStorageMembershipProvider' from assembly 'System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'.

Он пытается загрузить TableStorageMembershipProvider из System.Web ...

Итак, я создаю два отдельных проекта - консольное приложение и новое веб-приложение MVC3 - оба из них просто ссылаются на dll TableStorageMembershipProvider. Я настраиваю web.config и app.config с одними и теми же записями, в которых указывается поставщик членства, и пишу одну строку кода:

Membership.ApplicationName = "test";

Приложение MVC работает, консольное приложение выдает ту же ошибку, что и выше.

Я попытался продублировать все ссылки на веб-приложения в консольном приложении и установить для всех значение Копировать локально = true - не повезло. Вырвать мои окровавленные волосы над этим ...

VS2010, все проекты нацелены .Net 4

Должно быть действительно простое решение?

Ответы [ 3 ]

1 голос
/ 01 марта 2011

По умолчанию консольные приложения не имеют ссылки на System.Web, приложения MVC делают.Я думаю, вы обнаружите, что сообщение об ошибке немного вводит в заблуждение.Я думаю, что происходит, что TableStorageMembershipProvider имеет зависимость от System.Web, которая по какой-либо причине не распространяется на ваше консольное приложение.

Попытка добавить ссылку на System.Web в ваше консольное приложение иэто должно это исправить.

0 голосов
/ 22 октября 2012

Похоже, ваша конфигурация настроена на загрузку класса из System.Web, а не сборки, в которой находится ваш класс. Можете ли вы опубликовать конфигурацию (если у вас все еще есть эта проблема) из вашего консольного приложения?

0 голосов
/ 01 марта 2011

Что нужно проверить:

  1. Используете ли вы «.NET 4 Framework» или «.NET 4 Framework Client Profile» в своем консольном приложении?Это должно быть первым.
  2. Есть ли у вас сборки Azure на вашем пути?
...