Informixデータベースを使用しており、.NETからODBCを使用して正常に接続しています。使用している接続文字列は次のとおりです。Informix for .NETの接続文字列
DRIVER={IBM INFORMIX ODBC RIVER};
UID=username; PWD=password;
DATABASE=our_database;
HOST=devsrv01;
SERVER=devsrv01_tcp;
SERVICE=ids9tcp2;
PROTOCOL=onsoctcp;
CLIENT_LOCALE=en_US.CP1252;
DB_LOCALE=en_US.819;
私たちは、ODBCから変更するとoutlined on their siteとしてIBMのSDKとライブラリを使用します。
使用しているコードは次のとおりです。
string ConnectionString = "Database=our_database; Server=172.22.0.0:1528; UID=username; Password=password; ";
try
{
IfxConnection conn = new IfxConnection(ConnectionString);
conn.Open();
}
catch (IfxException ex)
{}
conn.Open()は例外をスローします。
ERROR [08001] [IBM] SQL30081N通信エラーが検出されました。使用されている通信プロトコル: "TCP/IP"。使用されている通信API:「ソケット」。エラーが検出された場所: "172.22.0.0"エラーを検出する通信機能: "recv"。プロトコル固有のエラーコード: ""、 ""、 "0" SQLSTATE = 08001
「ああ!」あなたは言う。ただ "PROTOCOL=onsoctcp;
"に入れてください。しかし、これによりIfxConnection(ConnectionString);
コマンドがArgumentException
にスローされます。接続文字列に無効な<field>=<value>
設定が含まれている場合、この例外がスローされます。もし私がごみを=ジャンクに入れたら;私はそれがプロトコル(またはPRO)フィールドを認識しないと思うように、同じArgumentExceptionをスローします。
(FYI)172.22.0.0はdevsrv01のIPであり、0.0を終了しません。
まず最初に試したことがあります。また、 "Protocol = onsoctcp;" –