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



问题:我的应用程序可以成功连接到Microsoft SQL 2014服务器,但只有当我的手机通过WIFI连接时。一旦我关闭WIFI,我就无法再连接。它不应该切换到4G连接吗?

代码:

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);
    }
}

我尝试过将连接IP地址从使用DNS地址更改为实际的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.

这里有几种可能性:

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