2

我有一段时间让visual studio 2010(我认为最终)正确附加到我的数据库。它从原来的位置移到了#MYAPP#/#MYAPP#.Web/App_Data/#MDF_FILE#.mdf。我在这台机器上运行了三个 SQL Server 实例。我试图用我的新文件替换旧的 mdf 文件,但无法获得适合它的连接字符串。

我真正想做的只是打开一个数据库实例并运行一个数据库创建脚本。然后我可以在 Silverlight 业务应用程序 (c#) 中通过我的 edmx(从模型生成数据库)生成一个数据库

现在,当我在 VS 中转到服务器资源管理器时,选择添加新连接,选择 MS SQL Server 数据库文件(SqlClient),选择我的文件位置(app_data 目录),使用 Windows 身份验证,然后点击测试连接按钮,我得到了以下错误:

无法打开物理文件“”。操作系统错误 5:“5(拒绝访问。)”。尝试附加到文件“”的自动命名数据库失败。存在同名数据库,或无法打开指定文件,或位于 UNC 共享上。

mdf 文件是在同一台机器上创建的

  • 在 SQL Server 管理工作室中连接到(本地)。
  • 获取新查询。
  • 从生成的 ddl 文件中粘贴 SQL。
  • CREATE DATABASE [NcrCarDatabase]; GO;在粘贴的 SQL 之前添加和
  • 执行查询。

我那时

  • 在 Management Studio 中与数据库断开连接。
  • 封闭式管理工作室
  • 导航到该实例的 DATA 目录
  • 将 mdf 和 ldf 文件复制到我的应用程序的 app_data 文件夹。

我现在正在尝试连接到 Visual Studio 中的同一个文件。

我希望这能让我的问题更加清晰:)。

连接字符串是:

数据源=.\SQLEXPRESS;AttachDbFilename=C:\SourceCode\NcrCarDatabase\NcrCarDatabase.Web\App_Data\NcrCarDatabase.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True

4

5 回答 5

1

在我以管理员身份运行 Visual Studio 之前,我一直被“拒绝访问”。然后,我必须先将数据库从 MSSMS 中分离出来,然后才能将其导入 Visual Studio。

于 2014-01-19T02:20:30.563 回答
1

您提到您的 MDF 文件已移动。移动后 MDF 是否正确连接到 SQL Express?请参阅:如何:将数据库文件附加到 SQL Server Express

于 2010-09-07T20:58:40.030 回答
1

您的 Sql server 服务在给定帐户下运行。您应该通过服务属性确定帐户,然后将 db 文件安全访问更改为该帐户的完全访问权限。

于 2013-07-14T15:15:30.057 回答
1

Access denied很可能意味着您已经有一个活动实例在您打开文件之前已经打开了文件 - 如果您有三个活动实例,那么其中一个很可能是罪魁祸首。

您可以尝试使用 Management Studio 连接到不同的实例,看看是否可以在那里找到基础。如果是,则将其与实例分离并从 Visual Studio 重试。或者,如果可能,尝试关闭所有三个实例,然后从 Visual Studio 重试。如果可行,请逐个重新启动实例以确定其中哪些实例正在尝试获取文件。

我之前回答过一个类似的问题,可能会有所帮助

于 2013-07-14T15:07:33.077 回答
0

为您的应用程序文件夹和文件提供完全控制权。写入单击包含 .mdf、.ldf 文件的文件夹.mdf.ldf

  1. 前往物业
  2. 单击安全性
  3. 单击允许中的完全控制。

他们会继续您的流程。

于 2014-11-19T17:48:19.207 回答