【问题标题】:Could not load file or assembly 'log4net' or one of its dependencies无法加载文件或程序集“log4net”或其依赖项之一
【发布时间】:2012-03-15 21:47:57
【问题描述】:

我正在尝试创建一个水晶报表,但我是该领域的新手。我从this tutorial post 创建了一个水晶报表,但它似乎不起作用。

我的错误是:

无法加载文件或程序集“log4net”或其依赖项之一。试图加载格式不正确的程序。

说明:在执行当前 Web 请求期间发生未处理的异常。请查看堆栈跟踪以获取有关错误及其源自代码的位置的更多信息。

异常详细信息:System.BadImageFormatException:无法加载文件或程序集“log4net”或其依赖项之一。试图加载格式不正确的程序。

来源错误:

在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常来源和位置的信息。

程序集加载跟踪:以下信息有助于确定程序集“log4net”无法加载的原因。

【问题讨论】:

  • 你的机器上安装 log4net 了吗?
  • 您的问题出在 log4net,而不是 Crystal Reports。是否添加了对 log4net dll 的引用?
  • 不,我没有,我不知道该怎么做,请你帮帮我。谢谢
  • 您的应用程序是针对 32 位、64 位还是 AnyCPU 构建的?你的 IIS 版本是 7 吗? IIS 是否在 64 位机器上运行? log4net.dll 是否适合您的位架构?
  • AnyCPU,IIS 版本 7,在 64 位机器上。如何检查 log4net.dll?

标签: asp.net visual-studio-2010 crystal-reports log4net


【解决方案1】:

BadFormatImageException 是您在为 32 位架构编译程序并尝试加载 64 位库时收到的错误,反之亦然。从错误中,您引用了 log4net(一个众所周知的日志库)。
首先,检查您正在创建应用程序的 CPU 类型(x86、x64、AnyCPU)
第二,检查 log4net 的位数(您应该引用相同的应用位数)
第三,检查正在运行的 OS IIS。 (如果是 x64 并且您的应用程序是 32,请在应用程序池的高级设置部分中将“启用 32 位应用程序”设置为 true)

【讨论】:

    【解决方案2】:

    “试图加载格式不正确的程序。”可能是因为您的某些 dll 是 32 位的,而有些是 64 位的。另一个原因可能是您的应用程序服务器配置为 64 位,而 dll 是 32 位(或其他方式)。

    我会首先检查 IIS 的设置(这取决于您使用的 IIS 版本),然后检查是编译为 32 位还是 64 位的 dll(来自 myproject 设置)。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-12-12
      • 2012-01-14
      • 1970-01-01
      相关资源
      最近更新 更多