Android から SQL Server に直接接続してデータを取得しようとすると次のエラーが発生することがあります。
System.Data.SqlClient.SqlException: <Timeout exceeded getting exception details>
■ 今回の原因
原因のパターンはいつくかあり得ますが、今回発生したのは Android エミュレーターの挙動が要因でした。
通常(WebAPI を叩くとき)は、Android エミュレーターからホストの PC へ接続する場合は、接続先として 10.0.2.2
を指定します。
この 10.0.2.2
で接続しようとし失敗していました。
■ 対処
10.0.2.2
ではなく、ホスト PC の IP アドレスを設定します。
また、SQL Server 用のポートも開放します。
※標準では 1433。
これで Android エミュレーターからホスト PC の SQL Server へ接続できました。