Firebird .NET провайдер и ASP.NET - PullRequest
0 голосов
/ 23 декабря 2009

У меня нет проблем с настройкой обычного (Windows Forms или Console) проекта в C # для использования поставщика данных Firebird .NET.

Однако всякий раз, когда я пытаюсь использовать того же поставщика в ASP.NET, я делаю следующее:

  1. Скопируйте DLL в проект, чтобы держать ее под контролем версий
  2. Добавить ссылку на проект
  3. Создать запись в теге <connectionStrings/> для моего подключения.
  4. Попробуйте использовать запись для подключения к Firebird

Вот пример записи:

<connectionStrings>
    <add 
       name="cstringdbname"
       connectionString="User=SYSDBA;Password=MY_PASS;Database=/opt/interbase/data/mydbname;Server=MyHostName; Connection lifetime=15;Pooling=true" 
       providerName="Firebird"/>
</connectionStrings>

Я пробовал разные вещи в атрибуте providerName. Кажется, ничего не работает.

Моя проблема в шаге № 4. Всякий раз, когда я пытаюсь подключиться к базе данных с помощью компонента SqlDataSource, соединение пытается использовать поставщик данных SQLServer вместо Firebird, и я получаю сообщение об ошибке.

Мой вопрос: есть ли что-то еще, что мне нужно сделать, чтобы ASP.NET загружал, использовал, подтверждал существование моего провайдера Firebird?

Ответы [ 2 ]

1 голос
/ 31 декабря 2009

Вот что я сделал, чтобы заставить его работать:

  • Изменен веб-конфиг, добавив следующие записи:

Во-первых, новый DBProviderFactory под тегом configuration:

<system.data>
    <DbProviderFactories>
      <remove invariant="FirebirdSql.Data.FirebirdClient"/>
      <add 
          name="Firebird Data Provider"
          invariant="FirebirdSql.Data.FirebirdClient" description="Firebird"
          type="FirebirdSql.Data.FirebirdClient.FirebirdClientFactory, FirebirdSql.Data.FirebirdClient"
      />
    </DbProviderFactories>
</system.data>

Во-вторых, моя запись в строке подключения выглядит следующим образом:

<connectionStrings>
<add 
   name="rshkdb"
   connectionString="User=u;Password=p;Database=/mydb;Server=X.X.X.X; Connection lifetime=15;Pooling=true"
/>
</connectionStrings>
  • Добавлена ​​клиентская DLL Firebird к ссылкам проекта с использованием Скопировать локальный параметр в true . Это очень важно, иначе ASP.NET не найдет библиотеку во время выполнения (только во время компиляции).
1 голос
/ 23 декабря 2009

Я тоже пробовал это в прошлом проекте и не получил его на работу. Однако мне показалось, что строка подключения имеет значение, поэтому я перенес настройку в раздел appSettings. После этого вы можете использовать те же параметры подключения, которые вы использовали для своих проектов WinApp.

...