错误:26 - 找到指定的服务器/实例时出错.(无法从我的主机服务器连接到我的本地Db)

wbe*_*ben 1 c# sql-server asp.net web-config sql-server-2008

我之前已经问过这个问题,但没有任何好的回复,我的问题是我的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" />
Run Code Online (Sandbox Code Playgroud)

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

在另一台服务器上我有sql server 2008(远程连接被接受,我有相同的实例名称SQLEXPRESS).我真的尝试了一切,但没有任何好结果.我非常感谢你的帮助,谢谢.

Aar*_*and 6

此格式表示本地连接:

.\SQLEXPRESS
Run Code Online (Sandbox Code Playgroud)

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

192.168.1.205\SQLEXPRESS
YOURMACHINE\SQLEXPRESS
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

 connectionString="data source=192.168.85.124\SQLEXPRESS;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 
Run Code Online (Sandbox Code Playgroud)

如果您不使用SQL Express命名实例,请尝试:

 connectionString="data source=192.168.85.124;
   Integrated Security=SSPI;
   Initial Catalog=aspnetdb;" 
Run Code Online (Sandbox Code Playgroud)

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

 connectionString="data source=192.168.85.124;
   User ID=username; Password=password;
   Initial Catalog=aspnetdb;" 
Run Code Online (Sandbox Code Playgroud)

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

  • 嗯,听起来你选择SSPI来保证安全,但也不是故意这样做.您是否在有权访问数据库的新SQL Server上创建了登录名?我可以建议Access作为一个更容易使用和管理的数据库吗? (2认同)
  • 我认为您需要删除App_data中的MDF文件并停止从您的应用程序,Visual Studio,SSMS等中引用它.您只需要*一个*数据库副本,而正确管理的是实际的数据库附加到您的SQL Server实例,而不是每次创建对它的新引用时复制的用户目录中的某些静态文件. (2认同)