2009-01-26 71 views
0

我们在我们的测试Web服务器上遇到了一个Web方法错误。主要错误是:ASP Membership无法处理web.config中的加密连接字符串

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

进一步向下看的堆栈跟踪给人一点信息:

"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..." 

看来,会员供应商正试图找到一个成员的呼叫连接字符串。未能找到此条目时,它尝试创建新的本地成员资格数据库,但未能通过权限错误执行此操作。

我们仔细检查了连接字符串,尽管它们被加密了,但它们似乎没问题。然后我们保存了解密的连接字符串部分的配置 - 现在调用工作了!

我们知道连接字符串是正确的,因为其他服务方法工作正常。更为奇怪的是,成员身份的某些方面似乎与加密一起工作。

有没有人看过这个或知道如何使用加密连接字符串这项工作?

回答

0

在您的代码中,在进行SQL调用之前,您是否在解密连接字符串?

来自堆栈跟踪的错误很可能是您的应用在该目录中没有写入权限。

+0

不,ASP会自动解密连接字符串。这适用于除此之外的其他任何方法调用。 – 2009-01-26 18:33:07