2010-11-26 5 views
0

Je rencontre des problèmes avec les abonnements ASP.NET 4.0. Je veux avoir toute ma configuration d'appartenance dans mon fichier web.config et ne pas utiliser machine.config. Je stocke l'appartenance dans un serveur de base de données SQL Server 2008 R2 distant appelé MYSERVER \ A. Voici les sections pertinentes de web.configProblème avec les fournisseurs d'appartenance

<connectionStrings> 
    <clear/> 
    <add name="MarksDB" connectionString="Server=MYSQLSERVER\A;Database=test_d; Trusted_Connection=Yes; Application Name=MarksDB"/> 
</connectionStrings> 
<system.web> 

<authorization> 
    <allow roles="Admins" /> 
    <deny users="?" /> 
</authorization> 
<authentication mode="Forms"> 
    <forms name="MarksDB" /> 
</authentication> 
<membership defaultProvider="MarksDBMembershipProvider"> 
    <providers> 
    <clear/> 
    <add 
     name="MarksDBMembershipProvider" 
     type="System.Web.Security.SqlMembershipProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="MarksDB" 
     enablePasswordRetrieval="false" 
     enablePasswordReset="true" 
     requiresQuestionAndAnswer="true" 
     applicationName="MarksDBMembershipProvider" 
     requiresUniqueEmail="false" 
     passwordFormat="Hashed" 
     maxInvalidPasswordAttempts="5" 
     minRequiredPasswordLength="7" 
     minRequiredNonalphanumericCharacters="1" 
     passwordAttemptWindow="10" 
     passwordStrengthRegularExpression=""/> 

    </providers> 
</membership> 

<roleManager enabled="true" defaultProvider="MarksDBRoleProvider"> 
    <providers> 
    <clear/> 
    <add 
     name="MarksDBRoleProvider" 
     type="System.Web.Security.SqlRoleProvider, System.Web, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" 
     connectionStringName="MarksDB" 
     applicationName="MarksDBRoleProvider" 
     />   
    </providers>  
</roleManager> 

Dans Visual Studio 2010, quand je vais à site-> Configuration ASP.NET et cliquez sur Ajouter un utilisateur sur l'onglet Sécurité, je reçois cette erreur:

An error was encountered. Please return to the previous page and try again. 

The following message may help in diagnosing the problem: The connection name 'MarksDB' was not found in the applications configuration or the connection string is empty. at System.Web.Util.SecUtility.GetConnectionString(NameValueCollection config) at System.Web.Security.SqlMembershipProvider.Initialize(String name, NameValueCollection config) at System.Web.Configuration.ProvidersHelper.InstantiateProvider(ProviderSettings providerSettings, Type providerType) 

Je ne suis pas sûr comment résoudre ce problème. Des idées?

Répondre

0

Vous devez utiliser l'attribut applicationName à la fois dans le fournisseur d'appartenances et dans le gestionnaire de rôles pour spécifier votre application (car vous pourriez avoir une autre application utilisant la même base de données). Mais vous spécifiez le Application Name dans la chaîne de connexion.

Je crois que vous supprimez le applicationName du fournisseur d'appartenances et du fournisseur de rôle.

+0

J'ai supprimé la propriété applicationName du fournisseur d'appartenances et du fournisseur de rôles dans mon fichier web.config, mais la même erreur se produit quand je clique sur Créer un utilisateur. –

+0

J'ai restauré mon fichier machine.config et tout fonctionne maintenant. Bizarre parce que je ne lis rien à partir de là. –

Questions connexes