2010-08-23 57 views
6
  • .Net4.0
  • MVC 2
  • NHibernate
  • NUnit

Estoy intentando probar la creación del usuario. Desde mi prueba, llamaré a la siguiente:El nombre del proveedor de membresía especificado no es válido. Nombre de parámetro: providerName

MembershipCreateStatus status; 
// _session is my current NHibernate session. 
var mmp = new MyMembershipProvider(_session); 
mmp.CreateUser(username, password, "[email protected]", "", "", true, Guid.NewGuid(), out status); 

En el método CreateUser, se pone tan lejos:

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

... antes de lanzar esta excepción:

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

Tengo mi nombre establecido en MyMembershipProvider, y en el Web.config tengo esto:

<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="/" /> 

Y también, mi cadena de conexión:

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

Ahora, supongo que el problema es que mis pruebas están creando una SQLite DB y el web.config está tratando de golpear a mi SqlServer DB, pero No estoy seguro de cómo proceder.

+1

puedo mostrar la línea de web.config en relación con la cadena de conexión llamado "ApplicationServices"? (eliminar cualquier contraseña por supuesto :) – Basic

+0

He editado mi publicación. –

Respuesta

8

¿No debería ser el nombre de la misma que se especifica en el web.config?

decir OnyxMembershipProvider

+0

Creo que esto lo solucionó, y nunca lo marqué como la respuesta. Perdón por tomar tanto tiempo! –

1

Es posible que desee considerar burlarse del proveedor de membresía. Las pruebas de su unidad deben probar su código, no el de Microsoft.

He aquí alguna información sobre el uso Moq para burlarse a cabo el proveedor de pertenencia:

What am I doing wrong this time with Moq?

+0

Problema leve ... Estoy usando WatiN, por lo que no tengo acceso al controlador directamente. No creo que pueda burlarme así, ¿o sí? –

Cuestiones relacionadas