У меня есть клиентское приложение Sybase, которое написано на С#, используя ADO.Net 4.0. Код имеет ссылку на файл сборки Sybase.AdoNet4.AseClient.dll.
В моем (DEV) приложении приложение работает отлично и без проблем.
Когда я перемещаю это приложение вместе с файлом Sybase.AdoNet4.AseClient.dll на сервер Windows 2008 (№ 1) и запускаю приложение, он не может получить успешное соединение с Sybase DB! Это бросается ниже ошибки.
Клиент не может установить соединение
Проверено сообщение трассировки стека, это не полезно.
в Sybase.Data.AseClient1.AseConnection.Open() в Sybase.Data.AseClient.AseConnection.Open()
Строка подключения состоит из источника данных = xxx.xxx.xxx.xxx; Port = 1234; Database = имя_бд; Uid = имя пользователя; PWD = пароль; ConnectionIdleTimeout = NNN;
Источник данных = xxx.xxx.xxx.xxx - это сервер (# 2), и он является pingable, и там нет проблемы (время ответа <1 мс 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;