【问题标题】:SqlException (0x80131904) connecting to mdf databaseSqlException (0x80131904) 连接到 mdf 数据库
【发布时间】:2014-02-05 06:08:55
【问题描述】:

我有一个 C# 应用程序,它连接到位于我的应用程序目录根目录中的 SQL Server .mdf 数据库文件。该应用程序分发给公司中的其他用户。他们收到以下错误:

System.Data.SqlClient.SqlException (0x80131904):建立与 SQL Server 的连接时发生与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定实例)

并非所有用户都收到此错误。我假设这是一个安全错误。下面是我的连接字符串。知道是什么导致了这个问题,我该如何解决?

<add name="EditorConnectionString" 
     connectionString="Data Source=.\SQLEXPRESS;AttachDbFilename=|DataDirectory|\Resources.mdf;Integrated Security=True;User Instance=True;Persist Security Info=true;Connection Timeout=130" 
     providerName="System.Data.SqlClient" />

【问题讨论】:

  • 你是从远程机器访问 mdf 文件吗?
  • 阅读错误信息。 SQL Server 是否在本地计算机上运行?
  • 应用程序连接到与应用程序位于同一文件夹中的 mdf 数据库。所以是的,它正在本地机器上运行。
  • @marc_s 我不确定。 Sql Express 需要在本地机器上运行吗?
  • 是的,它必须是 Express 版本,并且必须在该机器上本地运行

标签: c# sql-server


【解决方案1】:

如果您在连接字符串中使用AttachDbFileName=... 方法,则用于此必须的 SQL Server 是 Express 版本。

此外,由于连接字符串包含 .\SQLEXPRESS 作为其 Data Source= 值,SQL Server Express 实例必须在该特定机器上本地运行(这就是 .Data Source=值)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-02-14
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多