为什么会出现以下错误:"尝试附加到数据库失败,并显示以下信息:用户登录失败' x \ x'。

时间:2016-05-31 21:26:48

标签: sql-server visual-studio visual-studio-2015 sql-server-express

在我的VS 2015 ASP.NET项目中,我可以通过程序包管理器控制台更新我的SQL Server Express数据库,并且它已正确填充。但是,当我尝试在Visual Studio中的服务器资源管理器中刷新数据连接时,我收到以下错误:

  

尝试附加到数据库失败,并显示以下信息:   用户登录失败' x \ x'。

此外,当我运行应用程序时,我尝试使用迁移中的种子方法登录数据库中设置的凭据。配置文件我得到一个黄色页面,其中包含以下消息:

  

用户登录失败' x \ x'

     

SQLExpress数据库文件自动创建错误:

     

连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。提供者   尝试自动创建应用程序服务数据库   因为提供程序确定数据库不存在。该   以下配置要求是成功的必要条件   检查应用程序服务数据库是否存在   自动创建应用程序服务数据库:

     
      
  1. 如果应用程序在Windows 7或Windows Server上运行   2008R2,需要特殊配置步骤才能启用自动   创建提供者数据库。其他信息可用   at:http://go.microsoft.com/fwlink/?LinkId=160102。   如果   应用程序的App_Data目录尚不存在,即Web   服务器帐户必须具有对应用程序的读写权限   目录。这是必要的,因为Web服务器帐户将   如果还没有,则自动创建App_Data目录   存在。
  2.   
  3. 如果应用程序的App_Data目录已存在,则为Web   服务器帐户只需要读取和写入权限   应用程序的App_Data目录。
    这是必要的,因为网络   服务器帐户将尝试验证Sql Server Express   数据库已存在于应用程序的App_Data目录中。   从Web服务器撤消对App_Data目录的读访问权限   帐户将阻止提供商正确确定是否   Sql Server Express数据库已经存在。这将导致错误   当提供程序尝试创建已经的副本时   现有数据库。由于Web服务器,因此需要写访问权限   创建新数据库时使用帐户的凭据。
  4.   
  5. 的Sql   必须在计算机上安装Server Express。
  6.   
  7. 流程标识   对于Web服务器帐户,必须具有本地用户配置文件。见   自述文档,了解有关如何为其创建本地用户配置文件的详细信息   机器和域帐户。
  8.   

我的连接字符串如下:

<connectionStrings>
    <add name="Users" connectionString="Data Source=.\SQLExpress;Initial Catalog=Reg;Integrated Security=True" providerName="System.Data.SqlClient" />
</connectionStrings>

这是在部署到本地IIS服务器并为登录 IIS APPPOOL \ DefaultAppPool 创建新用户之后发生的。之后我删除了我用于调试的数据库,并尝试从我的App_Data文件夹中的.mdf文件重新创建它。这似乎是不可能的。我无法理解为什么我的Windows域\用户登录从那时起一直失败。有趣的是,我使用新数据库创建的测试项目工作正常,而旧的数据库崩溃。

我现在无法找到任何兼容的答案。它可能是什么?

谢谢!

1 个答案:

答案 0 :(得分:0)

检查以下内容:

  1. 打开IIS > Application Pools并检查DefaultAppPool是否是您的网站池名称。

  2. 打开SQL Studio管理器并确保添加IIS APPPOOL\DefaultAppPool作为security > Logins下的数据库登录之一

  3. 3 In security > Logins > user mapping确保您的数据库名称映射在IIS APPPOOL\DefaultAppPool

    4.也在security > Logins > user mapping下 - 将权限设置为'db_owner'