У нас возникли проблемы с подключением к удаленному серверу Firebird с использованием класса .NET поставщика FbConnectionStringBuilder. Мы можем подключиться к локальному файлу базы данных либо в режиме встраивания, либо в режиме сервера, однако, когда дело доходит до установления соединения с удаленным сервером, мы не можем установить соединение.Подключение Firebird к удаленному серверу с использованием FbConnectionStringBuilder
Мы присваиваем свойства класса FbConnectionStringBuilder следующим кодом (режим сервера). Я опустил код, который назначает свойства для встроенного режима.
var cs = new FbConnectionStringBuilder
{
Database = databaseSessionInfo.PathAbsoluteToDatabase,
Charset = "UTF8",
Dialect = 3,
};
cs.DataSource = databaseSessionInfo.Hostname;
cs.Port = databaseSessionInfo.Port;
cs.ServerType = (FbServerType)databaseSessionInfo.Mode;
cs.Pooling = true;
cs.ConnectionLifeTime = 30;
if (databaseSessionInfo.UseCustomUserAccount)
{
cs.UserID = databaseSessionInfo.Username;
cs.Password = databaseSessionInfo.Password;
}
else
{
cs.UserID = Constants.DB_DefaultUsername;
cs.Password = Constants.DB_DefaultPassword;
}
Довольно простой. Наше программное обеспечение содержит экран конфигурации подключения, при котором пользователь может предоставлять различные свойства соединения. Эти свойства присваиваются классу FbConnectionStringBuilder, используя приведенный выше код.
Класс подключения строителя выводит строку соединения в следующем формате:
начального каталог = "P: \ Source \ DATABASE.FDB", набор символов = UTF-8; источник данных = локальный; диалектных = 3; номер порта = 3050; тип сервера = по умолчанию, пулы = True; срок службы соединения = 30; идентификатор пользователя = USER, пароль = пример
Однако литература по Firebird строки соединения, как указано на этой странице (Firebird Connection Strings) говорить о других состав. Я могу только предположить, что класс FbConnectionStringBuilder создает строку подключения Firebird, удовлетворяющую требованиям Firebird.
- Соответствует ли классу FbConnectionStringBuilder имя хоста для строки подключения?
- Сервер Firebird работает на сервере. Я полагаю, что нет необходимости устанавливать его на клиенте?
- Какие библиотеки необходимо установить с клиентом для поддержки удаленного подключения к серверу?
- Мы делаем это правильно?
Любые советы приветствуются.
«Абсолютный путь», это путь к файлу базы данных. Наиболее распространенной конфигурацией нашего программного обеспечения является подключение к локальному файлу базы данных, этот путь указывает на этот файл. Если база данных находится на сервере, что должно содержать поле базы данных? Должен ли он просто содержать имя файла базы данных и ничего другого, потому что «хост» предоставит адрес в файл? – paligap
В случае использования сервера лучше всего использовать псевдоним базы данных - см. Файл aliases.conf в корне сервера сервера Firebird. – ain
Как указано выше, лучше указать псевдоним для базы данных в aliases.conf. В противном случае, если на сервере X база данных находится на C: \ data \ base.fdb, тогда вы должны указать «C: \ data \ base.fdb» в качестве пути к базе данных. –