System.BadImageFormatException

时间:2015-03-09 14:10:27

标签: c# asp.net dll

我有以下条件:

  • 我有一个在Windows 8 64位环境下运行.NET Framework 4.5的ASP.NET应用程序
  • 我有一个外部DLL库,我需要使用它,它会将我的系统连接到本地的另一个应用程序。

我尝试了以下内容:

  • 将我的应用程序移植到.NET 3.5和4.0
  • 从Singleton类调用DLL库,以及静态类
  • 使用x86编译和调试我的应用程序
  • 测试从桌面,Web服务或WCF应用程序调用DLL

问题是,调用此DLL的唯一成功方法是从Desktop,Webservices或WCF应用程序调用它们。无论我尝试什么条件,我都无法从我的ASP.NET应用程序中调用此DLL。

我总是遇到System.BadImageFormatException,说"其他信息:尝试加载格式不正确的程序。 (HRESULT异常:0x8007000B)"

不幸的是我无法详细介绍这个DLL。将我的ASP.NET应用程序连接到WCF应用程序会遇到性能问题。

有什么想法吗?

P.S:非常抱歉我的英语不好。任何帮助将不胜感激。

编辑:

我已经看到了已经给出的参考。虽然奇怪的是,这个参考文献并没有解决我的问题。

正如我之前提到的,我尝试使用x86和x64平台,.NET framework 3.5,4.0和4.5以及任何其他项目类型(桌面应用程序,WCF,ASP.NET除外)开发各种测试应用程序执行DLL调用。

显然,在与DLL的作者讨论之后,我们得出结论,只有类似桌面或类似服务的应用程序才能调用这种类型的DLL。我的理解是:" ASP.NET应用程序在HTTP上下文中运行,在用户请求资源时执行#34; (我很抱歉我的理解很浅,但如果我错了,请纠正我。)

还有一个问题:

是否可以从这种情况生成System.BadImageFormatException?

1 个答案:

答案 0 :(得分:0)

在Visual Studio IDE中更改,平台目标从“X86”更改为“任何CPU”。

请参阅此处Troubleshooting BadImageFormatException