Android应用程序MS SQL Server身份验证仅适用于WIFI

问题描述:

问题:我的应用程序可以成功连接到Microsoft SQL 2014服务器,但只能在通过WIFI连接手机时使用。只要我关闭WIFI,我就不能再连接了。它不应该切换到4G连接?Android应用程序MS SQL Server身份验证仅适用于WIFI

代码:

private class AuthenticateDB extends AsyncTask<String[], Void, Connection> { 

    private OnAuthenticationSuccess mCallbacks; 
    private String userName; 

    private AuthenticateDB(OnAuthenticationSuccess callbacks){ 
     this.mCallbacks = callbacks; 
    } 

    @Override 
    protected Connection doInBackground(String[]... params) { 

     Connection connection; 
     userName = params[0][0]; 
     String password = params[0][1]; 
     String serverIP = params[0][2]; 

     String connString = "jdbc:jtds:sqlserver://" + serverIP + "/" + 
       DatabaseContract.DATABASE_NAME + ";instance=" + 
       DatabaseContract.DATABASE_INSTANCE + ";"; 


     try { 
      Class.forName("net.sourceforge.jtds.jdbc.Driver"); 
      connection = DriverManager.getConnection(connString,userName,password); 
     } catch (Exception e){ 
      e.printStackTrace(); 
      return null; 
     } 

     return connection; 
    } 

    @Override 
    protected void onPostExecute(Connection connection) { 
     mCallbacks.notifyAuthenticationComplete(connection,userName); 
    } 
} 

我已尝试使用DNS地址的实际IP地址更改连接的IP地址,并与&试了一下没有端口号(1433)。我使用的IP不是localhost或127.0.0.1,或者是服务器名称。这是实际的广域网IP地址,它只能用于连接到WIFI的手机。

错误:

09-25 12:45:45.380 7338-7380/com.periapsislabs.assettracker W/System.err﹕ 
ava.sql.SQLException: Unable to get information from SQL Server: 98.219.231.54. 
+0

当您关闭wifi无法连接?你为什么期望有什么不同? – 2014-09-25 16:58:27

+0

不应该切换4G吗?或者我错过了什么 – 2014-09-25 17:01:48

这里有几种可能性:

  1. 您的设备未设置为自动切换到4G连接。
  2. 您的移动提供商正在阻止该类型的流量或端口。
  3. 由于4G连接的延迟增加,您的连接超时。
+0

感谢您的建议,至于#1我尝试开始与WiFi完全关闭的应用程序,所以它从一开始纯粹是一个4克连接,没有运气。 #2我有Verizon Wireless,这是他们阻止的端口吗? #3我将服务器上的超时更改为不超时,仍然得到相同的结果。 – 2014-09-25 17:59:09