Указанное имя поставщика членства недействительно. Имя параметра: providerName - PullRequest
6 голосов
/ 23 августа 2010
  • .Net4.0
  • MVC 2
  • NHibernate
  • NUnit

Я пытаюсь протестировать создание пользователя.Из моего теста я вызываю следующее:

MembershipCreateStatus status;
// _session is my current NHibernate session.
var mmp = new MyMembershipProvider(_session);
mmp.CreateUser(username, password, "something@example.com", "", "", true, Guid.NewGuid(), out status);

В методе CreateUser он получает это далеко:

var user = new MembershipUser(Name, username, providerUserKey, email, passwordQuestion, passwordAnswer, isApproved, false, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now, DateTime.Now);

... до выдачи этого исключения:

The membership provider name specified is invalid.
Parameter name: providerName

У меня установлено имя MyMembershipProvider, и в Web.config у меня есть это:

<add name="OnyxMembershipProvider" type="System.Web.Security.SqlMembershipProvider" connectionStringName="ApplicationServices"
  enablePasswordRetrieval="false" enablePasswordReset="true" requiresQuestionAndAnswer="false" requiresUniqueEmail="false"
  maxInvalidPasswordAttempts="5" minRequiredPasswordLength="6" minRequiredNonalphanumericCharacters="0" passwordAttemptWindow="10"
  applicationName="/" />

А также строка подключения:

<add name="ApplicationServices"
     connectionString="data source=.\SQLEXPRESS;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|aspnetdb.mdf;User Instance=true"
     providerName="System.Data.SqlClient" />

Теперь я предполагаю, что проблема в том, что мои тесты создают БД SQLite, а web.Config пытается получить доступ к моей БД SqlServer, но я не уверен, что делать дальше.

Ответы [ 2 ]

11 голосов
/ 27 июня 2011

Разве имя не должно совпадать с именем, указанным в файле web.config?

т.е. OnyxMembershipProvider

1 голос
/ 23 августа 2010

Возможно, вы захотите посмеяться над провайдером членства. Ваши юнит-тесты должны проверять ваш код, а не Microsoft.

Вот некоторая информация об использовании Moq для макетирования поставщика членства:

Что я делаю не так на этот раз с Moq?

...