【问题标题】:how do you do a class connection to connect to a remote database?您如何进行类连接以连接到远程数据库?
【发布时间】:2011-04-26 19:50:29
【问题描述】:

我有一个班级连接,但它不起作用。它可以在同一个网络(内联网)中工作,但不能在 Internet 上工作。

这是一个 SQL Server - 我有一个用户,一个密码 - 这个私有 ip,公共 ip 是 189.148.67.149

我已将 SQL Server 配置为接受 tcp/ip,但应用程序无法正常工作:

在与服务方 SQL Server 的连接稳定时,与特定网络或实例相关的错误。不是仆人,或者这个是不可访问的。它验证实例的名称是否正确以及 SQL Server 是否已形成以允许远程连接。 (至提供者:TCP 的供应商,错误:0 - 由于连接的部分在一段时间后没有适当响应,在尝试连接期间发生错误,或者由于未连接主机而在建立的连接中发生错误能够回应。)

我用西班牙语(我的语言)用http://es.babelfish.yahoo.com/translate_txt 翻译了它

错误 relacionado con la red o específico de la instancia mientras se establecía una conexión con el servidor SQL Server。 No se encontró el servidor o éste no estaba accessesible。 Compruebe que el nombre de la instancia es Correcto y que SQL Server está configurado para admissionir conexiones remotas。 (提供者:Proveedor de TCP,错误:0 - Se produjo un error durante el intento de conectada no respondió adecuadamente tras un periodo de tiempo, o bien se produjo un error en la conexión establecida ya que el host conectado no ha podido 响应者。)

class Conexion
{
     public SqlConnection conectar()
    {
        //my pc is called alumno-auc
        SqlConnection con = new SqlConnection(@"Data Source=192.168.1.82,1433;Initial Catalog=misnotas;Persist Security Info=True;User ID=login2; Password=login2; Asynchronous Processing=True;TrustServerCertificate=False;Network Library=dbmssocn;Workstation ID=alumno-auc;User Instance=False"); 
        return con;
    }

    public void EjecutarConsulta(SqlCommand comando)
    {
        comando.Connection.Open(); // abrimos la conexion
        comando.ExecuteNonQuery(); // ejecutamos la consulta
        comando.Connection.Close(); // y cerramos la conexion
    }
}

【问题讨论】:

  • 它适用于什么“红色”?
  • 您可以通过管理工作室或 SQL CMD 等 SQL Server 工具连接到它吗?我怀疑这是一个基础设施/网络问题。
  • @Preet 我在同一台计算机上确实有连接,并且我在其他计算机(在同一网络(内联网)中)确实有连接,但我从互联网(因为你的房子)没有连接例如)
  • “验证实例名称是否正确” - Buffalo Bill 正在编写 SQL Server 对话框!

标签: c# .net connection database-connection connection-string


【解决方案1】:

服务器和公共 Internet 之间是否有防火墙?您是否必须更改防火墙规则或端口转发才能允许公共访问?您是否在机器上运行了软件防火墙?有关 Windows 7 for Sql express 中的 Windows 防火墙的信息,请参阅http://www.sevenforums.com/system-security/58817-remote-access-sql-server-express-2008-windows-7-a.html

此故障排除指南应该会有所帮助 - http://blogs.msdn.com/b/sql_protocols/archive/2008/04/30/steps-to-troubleshoot-connectivity-issues.aspx

您确定要在公共 Internet 上使用您的 SQL 服务器吗?如果你这样做,你真的必须知道如何管理你的安全性。通常不推荐。

我尝试使用您提供的信息附加到您的服务器,我从 SQL Server Management Studio 2008 收到以下错误:

TITLE:连接到服务器

无法连接到 189.148.67.149。

------------------ 附加信息:

与网络相关或特定于实例的 建立时发生错误 连接到 SQL Server。服务器 未找到或无法访问。 验证实例名称是否为 正确,并且 SQL Server 是 配置为允许远程 连接。 (提供者:命名管道 提供者,错误:40 - 无法打开 连接到 SQL Server)(微软 SQL Server,错误:53)

如需帮助,请点击: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&EvtSrc=MSSQLServer&EvtID=53&LinkId=20476

------------------ 按钮:

好的

【讨论】:

【解决方案2】:

这里有很多可能性。

  1. 相关服务器上的 SQL Server 端口未打开。
  2. SQL Server 实例使用非标准端口。
  3. SQL Server 实例没有开启 SQL Browser 服务,因此它不接受远程连接。
  4. 您的连接协议有误。

我相信如果再多一点时间,我就能想到其他人。

【讨论】:

  • 我接受远程连接,端口是 1433,我确信它必须工作,但它不工作,正如我在描述中写的那样,它在 Intranet 中工作,但它不工作在互联网上,它确实适用于私有 IP,但它不适用于(在同一个 Intranet 中)公共 IP
【解决方案3】:

可以在www.unlocalize.com 找到原始英文异常消息以及指向现有解决方案的多个链接。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-05
    • 2023-03-17
    • 2013-02-13
    • 2014-11-21
    • 1970-01-01
    • 2012-02-10
    • 1970-01-01
    相关资源
    最近更新 更多