无法连接到服务器上的数据库

时间:2011-08-08 15:03:24

标签: asp.net sql-server

在服务器上运行app时,我无法连接到我的SQL Server数据库。

调试时一切运行正常,但当我作为ASPNET在服务器上运行时,用户无法登录。

我在测试项目中创建了数据库,然后只是连接到此数据库。我的连接字符串是

Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Temp\Barry\fsr\FSR.mdf;
Integrated Security=True;Connect Timeout=30;User Instance=True

所以这个asp应用程序在IIS 5上运行,并且在部署时,初始选择工作正常,因为我的gridview我有绑定显示数据但是当我运行程序(更新数据库)时,我点击了以下内容:

  

[SqlException(0x80131904):无法打开用户默认数据库。   登录失败。
  用户'hostxxxxx \ ASPNET'登录失败。]

如前所述,我不是以编程方式创建此数据库,只是连接到现有数据库。

数据库位于我的c: - 但我添加了用户ASPNET。如何将此数据库作为资源添加到程序中,而不是在c:?

上引用副本

3 个答案:

答案 0 :(得分:0)

我的第一个问题是:如果您拥有对服务器的控制权,为什么使用附加数据库。从:

AttachDbFilename=C:\Temp\Barry\fsr\FSR.mdf

如果您可以控制服务器,则没有理由附加。将数据库附加到SQL Server中的实际实例,而不是上面的bastardized版本。对于不允许您访问SQL工具的ISP,这个标准版本非常有用。除此之外,还有更多的工作而不是它的价值。

您遇到的第二个问题是身份验证。有几种方法可以解决这个问题。最简单的方法是设置一个SQL用户来访问数据库。如果每个用户都有登录凭据,则可以保留Windows身份验证方法,但必须关闭匿名访问,以便对每个用户进行GETS身份验证。只要anon是IIS中的一个选择,它将默认为anon并且您将遇到问题。第三种方式是模拟用户进行数据库访问。我想第四个是打开你的数据库,但是我不建议破坏安全性以使某些东西“起作用”。

答案 1 :(得分:0)

如果您的服务器上有数据库,则需要使用基于服务器的连接字符串 - 例如:

Data Source=servername\SQLEXPRESS;database=FSR;
Integrated Security=True;Connect Timeout=30;

您的用户需要在服务器上登录,并在相应的数据库中登录,才能成功连接。

请参阅ConnectionStrings.com网站,查看可能的连接字符串的大量列表 - 以及它们的设置意味着什么以及如何更改这些字符串。

答案 2 :(得分:0)

您需要进入数据库并为尝试访问数据库的帐户分配适当的权限,在这种情况下,该帐户看起来像内置的ASPNET帐户。您应该使用NETWORK SERVICE帐户代替ASPNET帐户。您可以通过IIS更改此内容。