在我的VS 2015 ASP.NET项目中,我可以通过程序包管理器控制台更新我的SQL Server Express数据库,并且它已正确填充。但是,当我尝试在Visual Studio中的服务器资源管理器中刷新数据连接时,我收到以下错误:
尝试附加到数据库失败,并显示以下信息: 用户登录失败' x \ x'。
此外,当我运行应用程序时,我尝试使用迁移中的种子方法登录数据库中设置的凭据。配置文件我得到一个黄色页面,其中包含以下消息:
用户登录失败' x \ x'
SQLExpress数据库文件自动创建错误:
连接字符串使用应用程序的App_Data目录中的数据库位置指定本地Sql Server Express实例。提供者 尝试自动创建应用程序服务数据库 因为提供程序确定数据库不存在。该 以下配置要求是成功的必要条件 检查应用程序服务数据库是否存在 自动创建应用程序服务数据库:
- 如果应用程序在Windows 7或Windows Server上运行 2008R2,需要特殊配置步骤才能启用自动 创建提供者数据库。其他信息可用 at:http://go.microsoft.com/fwlink/?LinkId=160102。 如果 应用程序的App_Data目录尚不存在,即Web 服务器帐户必须具有对应用程序的读写权限 目录。这是必要的,因为Web服务器帐户将 如果还没有,则自动创建App_Data目录 存在。
- 如果应用程序的App_Data目录已存在,则为Web 服务器帐户只需要读取和写入权限 应用程序的App_Data目录。
这是必要的,因为网络 服务器帐户将尝试验证Sql Server Express 数据库已存在于应用程序的App_Data目录中。 从Web服务器撤消对App_Data目录的读访问权限 帐户将阻止提供商正确确定是否 Sql Server Express数据库已经存在。这将导致错误 当提供程序尝试创建已经的副本时 现有数据库。由于Web服务器,因此需要写访问权限 创建新数据库时使用帐户的凭据。- 的Sql 必须在计算机上安装Server Express。
- 流程标识 对于Web服务器帐户,必须具有本地用户配置文件。见 自述文档,了解有关如何为其创建本地用户配置文件的详细信息 机器和域帐户。
醇>
我的连接字符串如下:
<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域\用户登录从那时起一直失败。有趣的是,我使用新数据库创建的测试项目工作正常,而旧的数据库崩溃。
我现在无法找到任何兼容的答案。它可能是什么?
谢谢!
答案 0 :(得分:0)
检查以下内容:
打开IIS > Application Pools
并检查DefaultAppPool
是否是您的网站池名称。
打开SQL Studio管理器并确保添加IIS APPPOOL\DefaultAppPool
作为security > Logins
下的数据库登录之一
3 In security > Logins > user mapping
确保您的数据库名称映射在IIS APPPOOL\DefaultAppPool
4.也在security > Logins > user mapping
下 - 将权限设置为'db_owner'