1

我之前已经问过这个问题,但没有任何好的回应,我的问题是我的 app_data 文件夹中有一个本地数据库(aspnetdb.mdf),这是 web.config 中的连接字符串:

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

所以我的站点在我的本地 iis 服务器上运行良好,但是当我将站点放在我的主机服务器中时,我收到此错误消息:建立与 SQL Server 的连接时发生网络相关或特定于实例的错误。服务器未找到或无法访问。验证实例名称是否正确以及 SQL Server 是否配置为允许远程连接。(提供者:SQL 网络接口,错误:26 - 错误定位服务器/指定的实例)。

在另一台服务器中,我有 sql server 2008(接受远程连接,并且我有相同的实例名称 SQLEXPRESS)。我真的尽我所能尝试了一切,但没有任何好的结果。我将非常感谢您的帮助,谢谢。

4

1 回答 1

6

此格式表示本地连接:

.\SQLEXPRESS

在另一台服务器上,您需要指定服务器名称或 IP 地址,例如:

192.168.1.205\SQLEXPRESS
YOURMACHINE\SQLEXPRESS

您还需要验证该实例是否为 SQL Server Express。从您的其他几乎相同的问题来看,它看起来像一个默认实例。

您还应该停止使用这种愚蠢的用户实例 / attachDbFilename 技术。将数据库正确附加到实例,然后Initial Catalog=aspnetdb;在连接字符串中引用逻辑数据库名称。由于多种原因,此用户实例功能已被弃用,这当然是其中之一。

当然,可能还有其他网络问题会阻止这种情况,例如,如果服务器位于不同的域中,有防火墙设置干扰等。但是您的其他服务器将永远无法使用点访问您的机器服务器名称。

编辑提供婴儿步骤,因为显然我的建议没有被遵循。假设您实际上已在新服务器上附加了 aspnetdb 数据库,请尝试以下操作:

 connectionString="data source=192.168.85.124\SQLEXPRESS;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

如果您毕竟没有使用 SQL Express 命名实例,请尝试:

 connectionString="data source=192.168.85.124;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 

对于 SQL 身份验证,请使用您在 Management Studio 中使用的相同用户名/密码:

 connectionString="data source=192.168.85.124;
   User ID=username; Password=password;
   Initial Catalog=aspnetdb;" 

这是故障排除 101 的东西。如果你仍然不能让它工作,你可能需要聘请一名顾问 10 分钟来为你修复它,因为你无法弄清楚你做了什么以及为什么你不能让它工作。

于 2012-08-05T21:25:11.923 回答