2012-05-30 92 views
2

我正在嘗試連接到Informix數據庫服務器(v10),並且正在使用Informix Data Provider .NET類庫通過.NET應用程序建立連接並檢索數據。Informix .NET連接字符串

最初,我在本地機器上設置了一個Informix服務器,用這個庫進行一些測試。有趣的是,有兩種情況,其中一種連接字符串起作用,另一種不起作用。

方案1:服務器建立經由協議「drsoctcp」和連接字符串如下連接:

connectionString="Server=my.server.com:9088; Database=mytestdb; User ID=user; Password=mypass; Persist Security Info=True; Authentication=Server;" 

上述工程因爲正在使用的協議是「drsoctcp」

場景2:服務器設置爲通過協議'onsoctcp'進行連接,連接字符串與上述完全相同。該連接將無法正常工作,並拋出的錯誤是:

ERROR [08001] [IBM] SQL30081N A communication err or has been detected. Communication protocol being used: "TCP/IP". Communicatio n API being used: "SOCKETS". Location where the error was detected: "fe80::1:10 9:c212:ce44%10". Communication function detecting the error: "recv". Protocol specific error code(s): "", "", "0". SQLSTATE=08001

的「my.server.com」是LAN上識別我的工作機器的名稱。我也嘗試使用本地主機或IP地址(包括127.0.0.1和外部IP地址),但仍然沒有成功。

真正的問題是在這裏:我希望連接到(這是完全不同的網絡上)Informix服務器可對我來說,通過onsoctcp協議進行連接。

有沒有人設法通過onsoctcp協議與.NET Informix提供程序類連接?

在此先感謝。

回答

1

您是否檢查ConnectionStrings.com? On this page,他們使用onsoctcp選項:

Database=myDataBase;Host=192.168.10.10;Server=db_engine_tcp;Service=1492; Protocol=onsoctcp;UID=myUsername;Password=myPassword;

+2

是的,我做了。當我嘗試將新參數包含到連接字符串(如主機和協議)時,它將引發一個InvalidArgument異常。我也嘗試遵循IBM的指導方針和文檔http://publib.boulder.ibm.com/infocenter/idshelp/v10/index.jsp?topic=/com.ibm.netpr.doc/netpr68.htm –

+1

它可能是由於我試圖在我的機器上進行內部連接,因此與連接到外部源時可能需要不同的連接字符串。當連接到外部源時,我會嘗試使用不同的組合 - 看起來這是一個反覆試驗的例子 –

+1

重新安裝客戶端SDK以最小的安裝選項並配置並調整了SetNet32.exe(例如DB和客戶端區域設置),我已經使用了以下連接字符串,它對我來說就像一個魅力: 'Host = 10.81.64.1;服務器=服務器;數據庫= MYDB;用戶ID = myUsername;密碼= myPassword;' 感謝您的幫助:) –