【问题标题】:Unable to open the physical file Operating system error 32无法打开物理文件 操作系统错误 32
【发布时间】:2011-09-14 21:28:19
【问题描述】:

好吧,我做了以下得到错误,不知道数据库连接失败的原因。

  1. 创建一个新的 ASP.NET 网站

  2. 将新的 *.mdf 数据库添加到 App_Data

  3. 使用 Visual Studio 中的服务器资源管理器向其中添加一些表

  4. 右键单击数据库并复制连接字符串。将其插入到 WebConfig 文件中,如下所示

    <connectionStrings>
        <add name="DB" connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=C:\inetpub\wwwroot\gs\App_Data\db.mdf;Integrated Security=True;User Instance=True" providerName="System.Data.SqlClient"/>
    </connectionStrings>
    
  5. 添加一些代码来获取数据

    selectStatement = "select * from users";
    SqlDataAdapter da = new SqlDataAdapter(selectStatement,
    ConfigurationManager.ConnectionStrings["DB"].ConnectionString);
    DataTable dtUsers = new DataTable();
    da.Fill(dtUsers);
    GridView1.DataSource = dtUsers.DefaultView;
    GridView1.DataBind();
    

然后 zoot 你得到错误

【问题讨论】:

    标签: c# asp.net sql exception web-config


    【解决方案1】:

    关于错误:操作系统错误32,打开错误...

    首先,授予 mdf 文件的权限。在我的情况下,NETWORK SERVICE 帐户对 data.mdf 具有完全访问权限。

    嗯,我的工作区:

    1. SSMS 已附加 data.mdf
    2. 在 VS2010 的同一时间,我打开了具有相同数据库文件的解决方案:data.mdf,但无法成功连接。

    解决方案:在 CONNECTION PROPERTIES 上的 USER INSTANCE 中将 TRUE 更改为 FALSE 并在此数据库上刷新 VS 内的连接。 最后,不再出现打开错误,您可以同时从 SSMS 和 VS2010 访问相同的数据库文件。

    连接字符串示例:

    DataSource=.\SQLEXPRESS;AttachDbFilename=D:\Contracts\App_Data\data.mdf;Integrated Security=True;User Instance=False
    

    问候

    德拉岑-ZG

    【讨论】:

      【解决方案2】:

      在我的例子中,我在实例 MSSQLSERVER 中拥有数据库,同时尝试将它附加到 SQLEXPRESS。从第一个实例中删除释放了文件。

      【讨论】:

        【解决方案3】:

        我一直在努力解决这个错误,我发现错误出在在线的数据库实例中,所以我从 SQLserver 管理工作室将其离线,我已经分享了遵循的步骤和解决方案HERE

        【讨论】:

          【解决方案4】:

          我偷偷怀疑它与权限有关。完全控制您的“经过身份验证的用户”。

          如果您想知道如何执行此操作 --- 我在 Windows 7 上,步骤如下:

          • 右键单击 MDF 文件并单击属性。
          • 选择“安全”选项卡并选择“经过身份验证的用户”(或 看起来正确的东西)。
          • 单击“编辑”并选择“完全控制”的“允许”复选框。
          • 一切顺利。

          HTH

          【讨论】:

          • 是的,这正是问题所在
          【解决方案5】:

          Google 中的top result 似乎解决了您的问题:

          以防万一有人仍在寻找解决此错误的方法,这对我有用:

          1) 打开 VStudio 项目 您需要连接到 SQL 数据库

          2)另外,转到 开始->运行->Services.msc

          3) 寻找 SQL Server (SQLEXPRESS) 服务和 别了

          4) 重新开始

          5) 尝试 现在连接你的数据库。

          看起来它起作用的原因有 与用户实例有关 正在进行的讨论 线程。

          【讨论】:

          • NOPE 在我的情况下不起作用。我同时安装了 Sql 2005、2008
          • 重启 sql server 对我有用!
          猜你喜欢
          • 2012-04-27
          • 2018-08-23
          • 2019-09-20
          • 2011-04-26
          • 1970-01-01
          • 1970-01-01
          • 2013-10-29
          • 2018-04-18
          • 1970-01-01
          相关资源
          最近更新 更多