没有计算机名指定的SQL Server连接字符串?怎么可能?

时间:2014-04-21 00:06:37

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

我是从我从存储库下载的代码库中工作的,很可能我错过了系统或本地设置。

在Web.Config中,我有这个连接字符串:

<add name="Context" 
    connectionString="Data Source=InstanceName;
        Initial Catalog=MyProduct;
        Integrated Security=True;
        Connect Timeout=15;
        Encrypt=False;
        TrustServerCertificate=False"
    providerName="System.Data.SqlClient" />

(缩进矿)

如果SQL Server在同一主机上,我通常会期望Data Source\\ComputerName\InstanceName或至少为.\InstanceName。但在这里,没有。最初上传的项目在开发人员的计算机上有一个本地数据库。如果我添加.\,我可以使连接正常工作,但我不明白如何只指定实例名称可以工作。那怎么样呢?

3 个答案:

答案 0 :(得分:3)

仅当您要连接到命名实例时才需要实例名称 如果安装的Sql Server尚未创建命名实例,则实例的默认值为MSSQLSERVER,您不需要在连接字符串上指定该部分。

但是,计算机名称部分是必需的,但可以用各种形式表示

  1. 意思是本地计算机
  2. IP地址(本地或非本地)
  3. 您的局域网的DNS系统识别的服务器名称
  4. 特殊字符串(LOCAL)
  5. 有关数据源密钥的更多信息,请参阅MSDN docs for ConnectionString

答案 1 :(得分:1)

可能是InstanceName是已配置目标服务器的ODBC数据源的名称,而其他员工是否设置了相应的ODBC数据源?

另一个选择是在传递给数据连接器之前修改了connectionstring,因此“MyMachineName”+ connectionstring正在某处发生(也许是为了分离生产和开发环境?

此外,仔细检查App_Data文件夹以确保未访问某种基于文件的数据库。

答案 2 :(得分:0)

除了@Steve已经提到的本地或当前计算机之外,还可以通过特殊字符串localhost来引用。请参阅以下帖子:

What is the sql connection string I need to use to access localhost\SQLEXPRESS with Windows Authentication or SQL Authentication?