IIS发布网站出现“未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。”的解决方法

未能加载文件或程序集SystemDataSQLite或它的某一个依赖项试图加载格式不正确的程序未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

说明: 执行当前 Web 请求期间,出现未经处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.BadImageFormatException: 未能加载文件或程序集“System.Data.SQLite”或它的某一个依赖项。试图加载格式不正确的程序。

源错误:

执行当前 Web 请求期间生成了未经处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

程序集加载跟踪: 下列信息有助于确定程序集“System.Data.SQLite”未能加载的原因。

警告: 程序集绑定日志记录被关闭。 要启用程序集绑定失败日志记录,请将注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog] (DWORD)设置为 1。 注意: 会有一些与程序集绑定失败日志记录关联的性能损失。 要关闭此功能,请移除注册表值 [HKLM\Software\Microsoft\Fusion!EnableLog]。

那好吧,新手就只能找度娘了。总结了一下各种可能的解决方法如下:

1. 在x64的机子上使用了错误版本的System.Data.SQLite.dll,即x86,需要安装合适版本的System.Data.SQLite.dll,现给出各种找到的下载地址(不保证有效果,毕竟这问题也不是全都相同的):

1)http://system.data.sqlite.org/index.html/doc/trunk/www/downloads.wiki

2)http://sourceforge.net/projects/sqlite-dotnet2/files/

3)

安装完后在D:\Program Files (x86)\SQLite.NET\bin\x64(我的程序安装在D盘)这个目录下也有一个System.Data.SQLite.DLL文件,只要在程序中引用这个文件这可以了,如果是一个工程多个项目就要对多个项目添加引用

2. 通过更改IIS的应用程序池来解决。

在IIS界面选择应用程序池->选择所使用的.net 版本->高级设置->将"使用32位应用程序"设为True

总体来说,就这一天所得到的解决方法就这两个,大体都是大同小异的。

那说说我自身的问题解决情况吧,首先尝试第一种方法安装组件再添加引用,问题依旧。先后把两个地址的组件下载安装还是不可以。

所以就试第二种方法,启用32位后,问题得以解决。

来源:http://blog.csdn.net/blacksource/article/details/17952675