'/'应用程序中的服务器错误,无法打开登录请求的数据库“”。登录失败

时间:2014-01-30 12:14:49

标签: asp.net sql-server

我使用简单的数据连接创建了一个使用ASP.net的网站,该网站在localhost中运行良好。当我想发布相同的内容时,我收到了这个错误。 “无法打开登录请求的数据库”Abcdb“。登录失败。用户”XYZ-Domain\XYZ-SVR-01$“登录失败。

  1. 我的SQL Server(SQL Express 2012)中没有用户“XYZ-Domain\XYZ-SVR-01 $”。
  2. 我的服务器在虚拟机中。
  3. 我的连接字符串是“Data Source=XYZ-05-VM1\SQLEXPRESS;Integrated Security=True;Initial Catalog=Abcdb”。
  4. 我是否必须在我的数据库中创建用户,如上所示,否则我可以使用现有的数据库用户。我对这项技术很陌生。请帮助我。

2 个答案:

答案 0 :(得分:0)

试试吧

<connectionStrings>
        <add connectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Abcdb;Integrated Security = SSPI"  providerName="System.Data.SqlClient" />
    </connectionStrings>

答案 1 :(得分:0)

错误表示可以访问服务器并且数据库名称正确。问题是登录无效 从登录名称,我假设您已在连接字符串中设置Integrated Security=SSPI,因此尝试使用SQL Server上运行的应用程序的帐户进行身份验证。在您的开发计算机上,这是您的用户帐户,在典型的开发人员计算机上将授予对本地SQL Server的高访问权限 将应用程序部署到IIS后,它将在AppPool中运行,该AppPool基本上是特定用户帐户(AppPool帐户)下的进程。您需要授予此用户帐户对数据库的访问权限。在您的情况下,此帐户是您部署应用程序的服务器的网络服务帐户。因此,您需要授予网络服务帐户访问数据库的权限,或者遵循以下方法 - 清洁方法:

  • 在您的域中创建专用于您的应用程序的新服务帐户。
  • 将AppPool配置为在此帐户下运行。断言该帐户在服务器上具有最小的访问权限。
  • 授予此帐户访问您的数据库的权限。

如果要检查数据库连接设置,请查看web.config中的connectionStrings部分。此link显示SQL Server的可用设置。