我的SQL Server Express 2005 DB出现了一个奇怪的问题。它在2003服务器上运行。使用VS2005,我可以毫无问题地访问数据库。但是当我尝试运行应用程序时,我得到了:
Cannot open user default database. Login failed. Login failed for user 'NT AUTHORITY\NETWORK SERVICE'......... .ldf may be incorrect.
我已确保NETWORK SERVICE可以完全访问网站文件夹及其所有子文件夹。
我注意到当我查看App_Data的属性时,它只读取灰色勾号。 .MDF文件不是只读的,但我无法删除此灰色标记。我试过点击它直到它消失并应用更改,我尝试了ATTRIB 。 -r但似乎没有任何改变它。
我很困惑。
乔恩
答案 0 :(得分:1)
您实际使用的是SQL Server Express实例,还是只使用App_Data文件夹中的数据库文件?
如果您正在使用SQL Server实例并且安装了SQL Server Management Studio Express,那么您可以执行以下操作以使“网络服务”帐户访问数据库(考虑一下,您应该能够将Management Studio指向App_Data文件夹中的mdf,并执行相同的操作):
我希望有所帮助。
答案 1 :(得分:1)
刚出现这个问题。我们在App_Data文件夹中使用了一个数据库文件。
“似乎我的数据库资源管理器中仍在我的IDE(Visual Web Developer Express)中打开了数据库。右键单击数据库并选择”关闭连接“修复它。”
(感谢asp.net forums)
答案 2 :(得分:0)
差异与文件夹上的ACL无关,而是与安全上下文映射到DB中的用户的事实有关。您的数据库可能会将您的用户帐户映射到dbo。
如果网络服务帐户要使用数据库,则需要在数据库中创建用户以映射到计算机帐户。
答案 3 :(得分:0)
我猜你正在运行一个非英语操作系统。
不知何故,无论出于何种原因,当操作系统被翻译成其他语言时,网络服务的登录名有时会被本地化。
现在很多程序都希望将登录名硬编码为“NT AUTHORITY \ NETWORK SERVICE” - 在德语版本的Windows中,例如帐户名称为“NT-AUTORITÄT\ NETZWERKDIENST”。所以你的程序正在寻找英文名称,找不到它,并显示错误。
即使某些Microsoft程序遇到此陷阱,并在安装时显示如下错误!