1

我已经使用 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,它已被卸载但具有相同的名称。(早期和此服务器具有相同的名称,即我的计算机名称。)

4

3 回答 3

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=.........

更新:啊哈!!有你的问题!

此版本的SQL Server不支持用户实例登录标志。

您的连接字符串包含:

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

这个“特性”(我喜欢称之为缺陷在 SQL Server 的 Express 版本中可用。

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

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

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

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

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

于 2012-10-16T08:05:56.670 回答
0

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

于 2012-10-16T07:36:11.970 回答
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

于 2012-10-17T04:47:04.293 回答