Come posso eseguire il debug di un 'provider di appartenenze predefinito non è stato trovato' errore con WCF e un provider di appartenenze personalizzato ASP.NET?

StackOverflow https://stackoverflow.com/questions/2325688

Domanda

Questo è un problema per me con .Net 3.5 SP1 in esecuzione su IIS7.5 64 bit (ho provato a forzare a 32 bit, ma ho ottenuto lo stesso risultato).

Ho un servizio WCF che voglio utilizzare l'autenticazione-servizi con. Quando ho alcun comportamento delle vernici servizio WCF (risposte) senza alcun errore. Altri servizi funzionano anche con altri comportamenti

Non appena aggiungo userNameAuthentication al comportamento specificando un MembershipProvider personalizzato per l'autenticazione a un servizio ...

  <serviceCredentials>
    <!-- Configure user name authentication to use the Membership Provider -->
    <userNameAuthentication userNamePasswordValidationMode ="MembershipProvider"
                            membershipProviderName ="MembershipService"/>
  </serviceCredentials>

Il servizio fa esplodere e restituisce il seguente errore:

 Parser Error Message: Default Membership Provider could not be found.
 Source Error: 
 Line 49:     </authentication>
 Line 50:     
 Line 51:     <membership defaultProvider="MembershipService" userIsOnlineTimeWindow="15">
 Line 52:       <providers>
 Line 53:         <clear/>

Registro eventi ha questo errore:

 WebHost failed to process a request.
 Sender Information: System.ServiceModel.Activation.HostedHttpRequestAsyncResult/59884855
 Exception: System.ServiceModel.ServiceActivationException: The service '/V4Service.svc' cannot be activated due to an exception during compilation.  The exception message is: Default Membership Provider could not be found. (C:\Code\SmartTrade Projects\SmartTrade.API\Web\SmartTrade.API\web.config line 50). ---> System.Configuration.ConfigurationErrorsException: Default Membership Provider could not be found. (C:\Code\SmartTrade Projects\SmartTrade.API\Web\SmartTrade.API\web.config line 50)
 at System.Web.Security.Membership.Initialize()
 at System.Web.Security.Membership.get_Providers()
 at System.ServiceModel.Configuration.UserNameServiceElement.ApplyConfiguration(UserNamePasswordServiceCredential userName)
 at System.ServiceModel.Configuration.ServiceCredentialsElement.ApplyConfiguration(ServiceCredentials behavior)
 at System.ServiceModel.Configuration.ServiceCredentialsElement.CreateBehavior()
 at System.ServiceModel.Description.ConfigLoader.LoadBehaviors[T](ServiceModelExtensionCollectionElement`1 behaviorElement, KeyedByTypeCollection`1 behaviors, Boolean commonBehaviors)
 at System.ServiceModel.Description.ConfigLoader.LoadServiceDescription(ServiceHostBase host, ServiceDescription description, ServiceElement serviceElement, Action`1 addBaseAddress)
 at System.ServiceModel.ServiceHostBase.ApplyConfiguration()
 at System.ServiceModel.ServiceHostBase.InitializeDescription(UriSchemeKeyedCollection baseAddresses)
 at System.ServiceModel.ServiceHost..ctor(Type serviceType, Uri[] baseAddresses)
 at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(Type serviceType, Uri[] baseAddresses)
 at System.ServiceModel.Activation.ServiceHostFactory.CreateServiceHost(String constructorString, Uri[] baseAddresses)
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.CreateService(String normalizedVirtualPath)
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.ActivateService(String normalizedVirtualPath)
 at System.ServiceModel.ServiceHostingEnvironment.HostingManager.EnsureServiceAvailable(String normalizedVirtualPath)

Sono abbastanza sicuro che questo non è un problema con il provider o fornitore di configurazione, come ho questo provider personalizzato di lavoro con un sito ASP MVC.

Qualche idea?

È stato utile?

Soluzione

Ho iniziato una nuova implementazione provider personalizzato da zero garantendo tutte le sostituzioni sono state correttamente tornando. Il mio unico originale che ho pensato che stava lavorando (che era un paio di mesi fa) e si scopre che non è più funzionato.

Si scopre se si ha il nome del provider corretto e il tipo corretto di configurazione che lascia solo l'implementazione provider personalizzato.

Quindi, se avete questo problema e si è sicuri vostra configurazione è corretta, verificare l'implementazione con un semplice ASP.net o un sito web ASP.net MVC.

Altri suggerimenti

ho ottenuto questo errore e alla fine scoperto che UTF8 nascosto o caratteri Unicode avevano trovato la loro strada nel mio file web.config. Ho dovuto eliminare le sezioni per capire che la sezione di archi di applicazione è stato danneggiato.

Una volta ho sostituito da una versione precedente, ha funzionato ancora una volta. Alcune delle stringhe avevano spazio bianco in più in loro che era sospetto, non sono sicuro se avrebbe potuto essere da tagliare e incollare o cosa. Si può provare a guardare il file web.config con un editor esadecimale troppo.

Ho avuto questo stesso problema e ha trascorso quasi una settimana capire che fuori. Il mio problema era che ho dovuto impostare l'override Nome proprietà per lo stesso valore che era in nome del provider del web.config. Odio quando le soluzioni più semplici sono così difficili da trovare!

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top