Android App MS SQL Server身份验证仅适用于WIFI

时间:2014-09-25 16:55:17

标签: java android sql sql-server networking

问题:我的应用程序可以成功连接到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地址,并尝试使用&amp;没有端口号(1433)。我使用的IP不是localhost或127.0.0.1,也不是服务器名称。它是实际的WAN 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 个答案:

答案 0 :(得分:0)

这里有一些可能性:

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