【发布时间】:2015-05-10 17:32:04
【问题描述】:
我有以下情况:
- 我有一个在 Windows 8 64 位环境下运行的 .NET 框架 4.5 的 ASP.NET 应用程序
- 我有一个需要使用的外部 DLL 库,它将我的系统连接到本地的另一个应用程序。
我尝试了以下方法:
- 将我的应用程序向下移植到 .NET 3.5 和 4.0
- 从 Singleton 类和静态类调用 DLL 库
- 使用 x86 编译和调试我的应用程序
- 测试从桌面、Web 服务或 WCF 应用程序调用 DLL
问题是,调用此 DLL 的唯一成功方法是从桌面、Web 服务或 WCF 应用程序调用它们。无论我尝试什么条件,我都无法从我的 ASP.NET 应用程序中调用此 DLL。
我总是遇到 System.BadImageFormatException,说“附加信息:尝试加载格式不正确的程序。(来自 HRESULT 的异常:0x8007000B)”
很遗憾,我无法提供有关此 DLL 的更多详细信息。并且让我的 ASP.NET 应用程序连接到 WCF 应用程序会遇到性能问题。
有什么想法吗?
P.S.:非常抱歉我的英语不好。任何帮助将不胜感激。
编辑:
我已经看到了已经给出的参考。虽然,奇怪的是,这个参考并没有为我的问题提供任何解决方案。
如前所述,我曾尝试使用 x86 和 x64 平台、.NET 框架 3.5、4.0 和 4.5 以及任何其他项目类型(桌面应用程序、WCF,ASP.NET 除外)开发各种测试应用程序执行 DLL 调用。
显然,在与 DLL 的作者讨论之后,我们得出结论,只有类桌面或类服务的应用程序才能调用这种类型的 DLL。我的理解是:“ASP.NET 应用程序在 HTTP 上下文中运行,它在用户请求资源时执行”(对于我的浅薄理解,我深表歉意,但如果我错了,请纠正我..)
还有一个问题:
从这种情况下生成 System.BadImageFormatException 的可能性很大吗?
【问题讨论】: