使用log4net,当我尝试在我的Asp.net应用程序中的App_Data文件夹下打开SQLite数据库时,跟踪文件中出现以下错误。
log4net:错误[AdoNetAppender] ErrorCode:GenericFailure。不能 打开数据库连接[数据 来源= | DataDirectory目录| \ databasefile1.db;同步= OFF。连接 字符串上下文[ConnectionString]。 System.InvalidCastException:无法使用 将类型为“System.Data.SQLite.SQLiteFactory”的对象强制转换为类型 'System.Data.IDbConnection'。在 log4net.Appender.AdoNetAppender.CreateConnection(类型connectionType, String connectionString)at log4net.Appender.AdoNetAppender.InitializeDatabaseConnection()
版本细节:
我尝试更改我的sqlite数据库位置但发生了同样的错误。
在Global.asax.cs中,
void Application_Start(object sender, EventArgs e)
{
AppDomain.CurrentDomain.SetData("DataDirectory", Server.MapPath("~/"));
XmlConfigurator.Configure();
}
在AssemblyInfo.cs中,
[assembly: log4net.Config.XmlConfigurator(ConfigFile="Web.config", Watch= true)]
在Web.config中
<log4net debug="true"><appender name="sqlite" type="log4net.Appender.AdoNetAppender"><bufferSize value="1"/><connectionType value="System.Data.SQLite.SQLiteFactory, System.Data.SQLite, Version=1.0.93.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/><connectionString value="Data Source=|DataDirectory|\databasefile1.db;Synchronous=Off"/><commandText value="INSERT INTO LogTable(message) VALUES (@message)"/><parameter><parameterName value="@message"/><dbType value="String"/><layout type="log4net.Layout.PatternLayout"><conversionPattern value="%message"/></layout></parameter></appender><root><level value="ALL"/><appender-ref ref="sqlite"/></root></log4net>
答案 0 :(得分:0)
看来问题在于你的connectionType配置(System.Data.SQLite.SQLiteFactory):
<connectionType value="System.Data.SQLite.SQLiteConnection, System.Data.SQLite, Version=1.0.93.0, Culture=neutral, PublicKeyToken=db937bc2d44ff139"/>
这是从config samples复制的,您必须将类型和版本设置调整为sqllite版本。