2009-01-26 8 views
0

Nous rencontrions des erreurs avec l'une de nos méthodes Web sur un serveur Web de test. La principale erreur était:L'abonnement ASP ne peut pas gérer les chaînes de connexion cryptées dans web.config

"Access to the path 'E:\websites\Discovery\ProfileService\App_Data' is denied" 

En regardant plus en bas de la trace de la pile donne un peu plus d'informations:

"at System.Web.DataAccess.SqlConnectionHelper.CreateMdfFile..." 
"at System.Web.DataAccess.SqlConnectionHelper.EnsureSqlExpressDBFile..." 
"at System.Web.DataAccess.SqlConnectionHelper.GetConnection..." 
"at System.Web.Security.SqlMembershipProvider.GetUser..." 
"at System.Web.Security.Membership.GetUser..." 
"at System.Web.Security.Membership.GetUser..." 

Il est apparu que le fournisseur d'appartenances a essayé de trouver une chaîne de connexion pour un appel d'adhésion. En ne trouvant pas cette entrée, il a essayé de créer une nouvelle base de données d'appartenance locale et n'a pas réussi à le faire avec une erreur d'autorisation.

Nous avons vérifié les chaînes de connexion et elles semblaient correctes bien qu'elles aient été cryptées. Nous avons ensuite sauvegardé la config avec la section de chaînes de connexion décryptée - l'appel a maintenant fonctionné!

Nous savons que les chaînes de connexion étaient correctes car les autres méthodes de service fonctionnaient correctement. Ce qui est encore plus étrange, c'est que certains aspects de l'adhésion semblaient fonctionner avec le cryptage en place.

Quelqu'un a-t-il déjà vu cela ou sait-il comment le faire fonctionner avec des chaînes de connexion cryptées?

Répondre

0

Dans votre code, avant de lancer un appel SQL, décryptez-vous les chaînes de connexion?

L'erreur de la trace de la pile est susceptible que votre application n'ait pas d'autorisation d'écriture dans ce répertoire.

+0

Non, ASP supprime automatiquement les chaînes de connexion. Cela fonctionne dans tous les autres appels de méthode sauf celui-ci. –

Questions connexes