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

sto cercando di testare creazione dell'utente. Dalla mia prova, sto chiamando il seguente:Il nome del provider di appartenenza specificato non è valido. Nome del parametro: 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); 

Nel metodo CreateUser, si arriva fino a questo punto:

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

... prima di lanciare questa eccezione:

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

Ho il mio nome impostato su MyMembershipProvider e nel Web.config ho questo:

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

E inoltre, la mia stringa di connessione:

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

Ora, sto cercando di indovinare il problema è che i miei test sono la creazione di uno SQLite DB e web.config sta cercando di colpire il mio SqlServer DB, ma Non sono sicuro di come procedere.

+1

si può mostrare la linea web.config relativa alla stringa di connessione denominata "ApplicationServices"? (rimuovere le password ovviamente :) – Basic

+0

Ho modificato il mio post. –

risposta

8

Non dovrebbe essere il nome uguale a quello specificato nel web.config?

cioè OnyxMembershipProvider

+0

Penso che sia stato risolto e non l'ho mai contrassegnato come risposta. Scusa per averci messo così tanto! –

1

È possibile prendere in considerazione la possibilità di prendere in giro il provider di appartenenze. I tuoi test unitari dovrebbero testare il tuo codice, non Microsoft.

Ecco alcune informazioni sull'utilizzo Moq di deridere il provider di appartenenza:

What am I doing wrong this time with Moq?

+0

Leggero problema ... Sto usando WatiN, quindi non ho accesso direttamente al controller. Non credo di poter prendere in giro così, posso? –

Problemi correlati