【问题标题】:Can not connect to local address in SQL Server无法连接到 SQL Server 中的本地地址
【发布时间】:2024-04-17 07:15:02
【问题描述】:

无法使用此连接字符串创建 SQL 连接:

<connectionStrings>
    <add name="SchoolContext" 
         connectionString="Server=.;Database=SchoolContext;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings>

我收到此错误:

与 SQL Server 建立连接时出现与网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。 (提供者:命名管道提供者,错误:40 - 无法打开与 SQL Server 的连接)

但是这个连接字符串没有问题:

<connectionStrings>
    <add name="SchoolContext" 
         connectionString="Server=DESKTOP-7M2F9E2\MOJTABA;Database=SchoolContext;Integrated Security=True;"
         providerName="System.Data.SqlClient" />
</connectionStrings>

为什么连接不上local

【问题讨论】:

  • 你试过.\MOJTABA吗?
  • 服务器是否应该是“Server=.;”。是不是不见了?
  • 嗯 - 您在本地计算机上一个默认(未命名)SQL Server 实例吗?如果您安装 SQL Server Express,您通常会得到一个 .\SQLEXPRESS 实例 - 这可能是问题所在吗?还是您只是没有在本地计算机上安装任何 SQL Server 数据库引擎??

标签: c# sql-server database database-connection connection-string


【解决方案1】:

这很可能是因为您尝试连接到名为MOJTABA 的命名实例,而不是从您发布的代码connectionString="Server=DESKTOP-7M2F9E2\MOJTABA 中看到的默认实例。你也可以说Server=localhost\MOJTABA.\MOJTABA

【讨论】:

  • 你绝对可以使用.\MOJTABA,如果本地机器上有一个名为MOJTABA的命名实例...
【解决方案2】:

我会试试这个:

<connectionStrings>
    <add name="SchoolContext" providerName="System.Data.SqlClient" connectionString="Server=.\MOJTABA;Database=SchoolContext;Integrated Security=True;"/>
</connectionStrings>

Server=.\MOJTABA 表示:本地机器 (.),MOJTABA 数据库服务器实例。 仅凭点不足以知道要连接到哪个实例。

【讨论】:

  • 单独的点连接到 SQL Server 的 默认、未命名 实例 - 它足以知道去哪里!该实例也必须存在.....
【解决方案3】:

这不是 C# 问题,因此标记错误。网络代码不关心另一端是否在同一台计算机、同一交换机或 Voyager 2 探测器上。

正确安装和管理 SQL Server 与编程完全不同。

最后,连接字符串非常复杂,有一个dedicated webpage

这可能是 SQL Server 管理问题(您尝试连接的实例不存在/不允许建立连接)或连接字符串问题(您的格式错误)。如果不知道您的 Environment 究竟是什么样子,真的是无法判断的,这只有您才能真正做到。

【讨论】:

  • 这不是一个答案。如果您想对问题的有效性和内容发表评论,请使用 cmets,而不是答案,即使您有很多话要说。
  • @juharr 答案是:“它是这两者之一,但我们不能准确地说出哪一个。”这是其中一个问题,我们可以写一整本可能的原因,但仍然不能准确回答他的问题,因为我们现在根本不知道他电脑上的确切情况。
  • 那么问题要么缺乏信息,要么过于宽泛。您可以出于任何原因投票关闭它,但解释这不是答案。
  • @juharr:这个问题没有任何问题,所以我认为没有理由关闭它。它和我曾经问过的一切一样有效。正是这个问题(这不是一个罕见的问题)的性质,使得回答猜测最多只能给出方向。这与竞争条件的任何情况相同:我们只能为解决方案提供粗略的指导。实际的解决方案需要全面了解我们没有的代码或重大设计更改。
  • 我认为这个问题也没有问题,但您的回答似乎表明存在。我是说你不能同时拥有这两种方式,一个“好”的问题,但一个答案表明它是模糊或缺失的信息才能给出详细的答案。我个人认为你错了完全是另一个问题。
最近更新 更多