Comment puis-je déboguer un « fournisseur d'appartenances par défaut n'a pas pu être trouvé » erreur avec WCF et un fournisseur d'appartenance ASP.NET personnalisé?

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

Question

Cela me est un problème pour avec .Net 3.5 SP1 fonctionnant sur IIS7.5 64 bits (j'ai essayé de forcer 32 bits, mais obtenu le même résultat).

J'ai un service WCF que je veux utiliser les services d'authentification avec. Quand je n'ai pas le comportement des peintures de service WCF (réponses) sans aucune erreur. D'autres services fonctionnent également avec d'autres comportements

Dès que j'ajoute userNameAuthentication au comportement spécifiant un MembershipProvider personnalisé pour l'authentification à un service ...

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

Le service explose et retourne l'erreur suivante:

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

Event Log a cette erreur:

 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)

Je suis sûr que ce n'est pas un problème avec la configuration du fournisseur ou prestataire que j'ai ce fournisseur personnalisé travaillant avec un site MVC ASP.

Toutes les pensées?

Était-ce utile?

La solution

J'ai commencé une nouvelle implémentation de fournisseur personnalisé à partir de zéro assurer que tous les remplacements rentraient correctement. Mon original que je pensais travaillait (qui était il y a quelques mois) et il se trouve qu'il ne fonctionnait plus.

Il se trouve si vous avez le nom du fournisseur correct et le bon type de configuration qui ne laisse que votre implémentation de fournisseur personnalisé.

Donc, si vous avez ce problème et vous êtes sûr que votre configuration est correcte, vérifiez votre mise en œuvre d'un simple ASP.net ou site web ASP.net MVC.

Autres conseils

Je suis cette erreur et a finalement découvert que UTF8 cachés ou les caractères Unicode avaient trouvé leur chemin dans mon fichier web.config. Je devais supprimer des sections pour comprendre que la section des chaînes d'application a été corrompu.

Une fois que je l'ai remplacé à partir d'une version plus ancienne, il a travaillé à nouveau. Certaines des cordes avaient un espace blanc supplémentaire dans ceux qui était suspect, je ne sais pas si cela aurait pu être de couper-coller ou quoi. Vous pouvez regarder votre fichier web.config avec un éditeur hexadécimal aussi.

J'ai eu ce même problème et a passé presque une semaine figurer dehors. Mon problème était que je devais régler le remplacement de propriété Name à la même valeur qui était au nom du fournisseur du web.config. Je déteste quand les solutions les plus simples sont si difficiles à trouver!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top