在C#中设置常规(Windows窗体或控制台)项目以使用Firebird的.NET数据提供程序时没有问题。
但是,每当我尝试在ASP.NET中使用相同的提供程序时,我都会执行以下操作:
<connectionStrings/>
标记中为我的连接创建一个条目。 以下是条目示例:
<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提供商的存在,我还需要做些什么吗?
答案 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>