无法使用C#Web项目连接到SQL Server 2008 r2,错误:连接字符串无效

时间:2012-10-16 07:19:34

标签: c# asp.net sql-server-2008-r2 connection-string

我使用C#在ASP.net中创建了基本登录模块。我正在使用C#Web应用程序。

之前我使用SQL Server 2008 Express作为数据库。那时应用程序运行正常。

但后来我卸载了该数据库并安装了SQL Server 2008 R2。

从那时起,我收到了错误:

  

发生与网络相关或特定于实例的错误   建立与SQL Server的连接。找不到服务器或   无法访问。验证实例名称是否正确   SQL Server配置为允许远程连接。 (提供者:SQL   网络接口,错误:25 - 连接字符串无效)

我在config.xml找到了我的代码为:

<connectionStrings>
    <add name="ApplicationServices"
         connectionString="data source=.\SQLEXPRESS ;Integrated Security=SSPI;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
         providerName="System.Data.SqlClient" />
  </connectionStrings>

我的SQL Server名为MSSQLSERVER

此连接字符串必须是问题。但我无法解决这个问题。

我的结论是否正确,我可以得到一些帮助吗?

PS:我的SQL Server 2008 R2安装正确。

但每当我尝试连接到SQL Server 2008 R2时,它连接到2008,它已被卸载但具有相同的名称。 (早期和此服务器都具有相同的名称,即我的计算机名称。)

3 个答案:

答案 0 :(得分:3)

最有可能的是,您的SQL Server 2008 Express版本已安装为SQLEXPRESS实例 - 因此您的连接字符串将类似于:

server=.\SQLEXPRESS;database=.........

或类似的东西(也许你有机器名而不是代表“本地计算机”的.。)

新的SQL Server 2008 R2实例必须是不同的实例名称 - 具体取决于您的安装方式。如果您使用了默认实例,则实例没有特定名称,您的连接字符串应如下所示:

server=.;database=.........
server=(local);database=.........
server=YourMachineName;database=.........

如果您安装了具有特定实例名称的SQL Server 2008 R2(必须知道的内容 - 我们无法为您了解....),请在您的连接字符串中使用该实例名称:

server=.\INSTANCENAME;database=.........
server=(local)\INSTANCENAME;database=.........
server=YourMachineName\INSTANCENAME;database=.........

更新:AHA !!这是你的问题!

  

此版本的SQL 用户实例登录标记 不受支持   服务器

您的连接字符串包含:

.....;AttachDBFilename=|DataDirectory|\aspnetdb.mdf;User Instance=true"
      ****************************************************************

这个“功能”(我喜欢称之为缺陷)在SQL Server的Express版本中仅提供 ONLY

因此,当您升级到完整版本的SQL Server时,您需要:

  • 将数据库附加到服务器
  • 使用其逻辑名称连接使用它(提供.mdf文件名)

因此,一旦将ASPNETDB.MDF文件附加到SQL Server 2008 R2实例,请将连接字符串更改为:

data source=.;database=ASPNETDB;Integrated Security=SSPI;

(或者可能使用GIS作为您的数据源/服务器名称)然后您应该没问题。

答案 1 :(得分:0)

我认为“。\ SQLEXPRESS MSSQLSERVER”不是您的数据源。也许只有“。\ SQLEXPRESS”。

答案 2 :(得分:0)

我使用了以下连接字符串:

<connectionStrings>
    <add name="ApplicationServices"
         connectionString="Server=EGT-GIS;Integrated Security=True;Database=C:\inetpub\wwwroot\AddMarker\Map\Map\App_Data\ASPNETDB.MDF; Asynchronous Processing=False;" />
  </connectionStrings>

它有效!!!

但只有一个问题,这个连接对于登录数据库是否安全?

从Connection String获得连接字符串帮助,感谢Marc_s