我有一个 Sybase 客户端应用程序,它是使用 ADO.Net 4.0 用 C# 编写的。代码引用了 Sybase.AdoNet4.AseClient.dll 程序集文件。
在我的 (DEV) 盒子上,应用程序运行完美,没有问题。
当我将此应用程序连同 Sybase.AdoNet4.AseClient.dll 文件移动到 Windows 2008 服务器 (#1) 并运行该应用程序时,它无法成功连接到 Sybase 数据库!它抛出以下错误。
Client unable to establish a connection
检查堆栈跟踪消息,它没有用。
at Sybase.Data.AseClient1.AseConnection.Open() at Sybase.Data.AseClient.AseConnection.Open()
连接字符串由 数据源=xxx.xxx.xxx.xxx;端口=1234;数据库=数据库名; uid=用户名; pwd=密码; ConnectionIdleTimeout=nnn;
Data Source=xxx.xxx.xxx.xxx 是服务器(#2),它是可 ping 通的,没有问题(响应时间<1ms TTL=255)。
请您参考如下方法:
尝试将 Charset=iso_1
(或适当的字符集)添加到您的连接字符串中。这解决了我的问题。
例如:
Data Source=xxx.xxx.xxx.xxx; Port=1234; Database=dbname; Uid=username; Pwd=password; ConnectionIdleTimeout=nnn;
现在是:
Data Source=xxx.xxx.xxx.xxx; Port=1234; Database=dbname; Uid=username; Pwd=password; ConnectionIdleTimeout=nnn;Charset=iso_1;