ASP.Net的数据库被附加到SQL Server后,ASP.Net程序无法登陆问题的解决方法

      最近遇到一个莫名其妙的问题,本来在用ASP.Net(VS2008)开发一个有关数据库的程序,在调试阶段很正常,没有出现任何问题,也且发布后运作也算正常,然而因为想看看后台数据库的情况,就把数据库附加(Attach)到SQL Server 2005上了,这下可好,ASP.Net程序再也无法登陆该数据库了,Detach了也不行。错误显示:“机器名/ASPNET”登陆失败。

      从网上得知,是因为SQL Server 2005再Attach时,更改了数据库的登陆用户名,解决方法很多,诸如:用aspnet_regsql.exe;在SQL Server Management Studio里添加“机器名/ASPNET”用户,等等。试了一圈儿,都没有成功。

     别无他计,马上停SQL Server服务,用开发时的数据库文件覆盖,不成想,仍然不行。

     搞得我是一头雾水……

     突然有一个想法,因为ASP.Net默认的链接字符串是有“User Instance=True”的,也就是说,它是自己去建立新的连接进程,而且不需要用户名、密码,这样的链接方式是必须系统用户权限的!马上查看“机器名/ASPNET”的权限(右击我的电脑-》管理-》本地用户和组),果然只是个User,这样当然不行,给它Administrators!再次尝试登陆,成功!

     从逻辑上看,这个问题引起的原因是,VS2008在开发阶段,通过配置SQL Server或其他地方,赋予了ASPNET Administrators权限(这一修改是不为人之的,而且也是无法查看的),然而Attach后,SQL Server否定了该修改,导致了令人困惑的问题!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值