Firebird .NET提供程序和ASP.NET

时间:2009-12-23 11:28:46

标签: asp.net ado.net firebird

在C#中设置常规(Windows窗体或控制台)项目以使用Firebird的.NET数据提供程序时没有问题。

但是,每当我尝试在ASP.NET中使用相同的提供程序时,我都会执行以下操作:

  1. 将DLL复制到项目以使其保持版本控制
  2. 添加对项目的引用
  3. <connectionStrings/>标记中为我的连接创建一个条目。
  4. 尝试使用该条目连接到Firebird
  5. 以下是条目示例:

    <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 个答案:

答案 0 :(得分:1)

我在过去的项目中也试过这个并没有让它发挥作用。但是,我只发现连接字符串很重要,所以我将设置移动到了appSettings部分。执行此操作后,您可以使用与WinApp项目相同的连接设置。

答案 1 :(得分:1)

这就是我为了让它发挥作用所做的事情:

  • 更改了添加以下条目的网络配置:

首先,configuration标记下的新DBProviderFactory:

<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>
  • 使用将本地复制选项添加到 true ,将Firebird的客户端DLL添加到项目的参考中。这非常重要,否则,ASP.NET将无法在运行时找到该库(仅在编译时)。