c# - 为什么我能够从以 64 位模式在 IIS7 中运行的 AnyCPU .NET Web 应用程序调用 32 位 COM 库?

标签 c# asp.net com iis-7 32bit-64bit

在不使用 COM+ 代理服务的情况下,我很高兴能够使用来自 .NET 应用程序的 32 位 COM 互操作库中的类,该应用程序使用目标 AnyCPU 编译,在 64 位 w3wp 进程中运行。

我在 64 位 .NET 进程中成功地实例化了来自 32 位 COM 互操作库的类。

w3wp 以 64 位模式运行,并且 IIS 配置设置为不允许 32 位应用程序。除此之外,还有一个专门针对 x64 编译和注册的 .NET 程序集。

我只是想知道,这怎么可能?

有趣的是,如果代码是使用 Visual Studio 2008 编译的(针对 3.5 框架),那么它的工作效果非常好。如果使用 Visual Studio 2010 编译相同的代码,针对 3.5 框架,应用程序在尝试加载 32 位 COM 互操作库时会失败。应该如此。

最佳答案

如果它运行的话,它将以 32 位模式运行,你不能在 64 位进程中有 32 位的东西,反之亦然。一个过程完全是一个或另一个。

这与在 64 位主机上运行 32 位进程不同,显然,这是可行的。

另一种选择是,第三方的东西实际上提供了 64 位引用,而您关于它运行 32 位的结论是不正确的。

关于c# - 为什么我能够从以 64 位模式在 IIS7 中运行的 AnyCPU .NET Web 应用程序调用 32 位 COM 库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6759072/

相关文章:

javascript - 在 ASP 中调用 JavaScript 函数 :TEXTBOX

javascript - 使点击的链接颜色保持不变

javascript - Google map 数据类型抛出类型错误 : can't convert undefined to object

c++ - 从 WinRT C++ 组件访问 COM 对象

C# - 以编程方式尝试检查代码块中的内存泄漏的方法

c# - 如何通过其 URL(或其他键)查找 SiteMapNode?

windows - raw_interfaces_only 用法?

c++ - 从单独的线程启动时出现 OpenOffice Automation 问题

c# - Elasticsearch按日期查询返回错误结果

c# xamarin forms 主详细信息页面 MVVM