与主机server.com/Db_name,端口1433的TCP / IP连接失败

时间:2013-03-08 07:45:25

标签: java android sql sql-server jdbc

问题可能是一个基本问题,如果是,请原谅我。我正在尝试将 Android应用程序连接到MSSQL Server 。我在下面的链接中使用了相同的代码。我根据此链接中选择的答案使用了sqljdbc 4.3.0:

com.mysql.jdbc.driver class not found exception

当我这样做时它调试成功但是当我在我的设备上运行它是三星Galaxy Y(Gingerbread)时它给了我这个错误:

com.microsoft.sqlserver.jdbc.SQLServerException: The TCP/IP connection to the host server.com/Db_name, port 1433 has failed. Error: "null. Verify the connection properties, check that an instance of SQL Server is running on the host and accepting TCP/IP connections at the port, and that no firewall is blocking TCP connections to the port.".

任何帮助都将受到高度赞赏。

编辑:我在模拟器上运行它并在文本视图中显示此错误。

android.os.NetworkOnMainThreadException

2 个答案:

答案 0 :(得分:1)

你有这个例外:

com.microsoft.sqlserver.jdbc.SQLServerException:The connection to the 
          host server.com, named instance Db_name has failed. 
Error:"Java.net.SocketTimeoutException". Verify the server and the instance names, 
          check that no firewall is blocking UDP traffic to port 1434, and for 
          SQL Server 2005 or later verify that the SQL Server Browser Service 
          is running on the host.

基本上,您需要执行异常消息所说的内容:

  1. 检查您使用的是正确的服务器主机名。 (真的是“server.com”吗?)
  2. 检查您使用的是正确的实例名称。 (真的是“Db_name”吗?)
  3. 检查没有防火墙阻止您从设备访问UDP端口1434.
  4. 检查SQL Server Browser服务是否在“server.com”(或其他任何内容)上运行。
  5. 在您的设备上尝试其他一些事情:

    • 检查您是否可以对“server.com”(或其他)进行DNS查找
    • 检查您是否可以“ping”“server.com”主机(或其他)

    基本上,有很多事情可能错误,你需要有条不紊地删除它们,直到找到问题的真正原因。我们不能为你做那件事。


      

    我在模拟器上运行它并在文本视图中显示此错误。

       android.os.NetworkOnMainThreadException
    

    这是一个不同的问题。

    以下是javadoc所说的内容:

      

    “应用程序尝试在其主线程上执行网络操作时引发的异常。

         

    仅针对Honeycomb SDK或更高版本的应用程序抛出此内容。针对早期SDK版本的应用程序可以在其主要事件循环线程上进行网络连接,但是非常不鼓励这样做。请参阅文档Designing for Responsiveness。“

    简而言之,你不应该在主事件线程上做网络内容(包括与平台外数据库交谈)......因为它很可能会导致UI长时间锁定。

答案 1 :(得分:0)

您的网址出现问题,请使用以下网址格式:

jdbc:sqlserver://server.com\\Db_name;