asp.net - 为什么我必须运行 x86 控制台应用程序才能看到 COM DLL,而 ASP.NET 可以运行 AnyCPU?

标签 asp.net .net com

我正在运行 64 位 Windows 7、Studio 2012,并且不完全理解以下行为:

  1. 我通过 regsvr32 注册了一个第 3 方 COM dll
  2. 我创建了一个 ASP.Net 项目。
    • 我引用了 COM 类型库
    • 我将 objective-c PU 设置为“AnyCPU”
    • 一切都编译并运行良好

  3. 我创建了一个控制台应用
    • 我引用了 COM 类型库
    • 我将 objective-c PU 设置为“AnyCPU”
    • 它可以编译,但出现运行时错误“COM 库未注册。”
    • 我将 objective-c PU 切换为 x86,它运行良好。

将站点部署到 IIS 时,我必须在应用程序池中“启用 32 位应用程序”才能正常工作。 也许这是在 Visual Studio 开发服务器中自动完成的。

Visual Studio 开发服务器只是在幕后以 32 位运行我的站点,还是这里有更深层次的工作?

最佳答案

是的,您的网络服务器将您的网站作为 32 位应用程序运行。

关于asp.net - 为什么我必须运行 x86 控制台应用程序才能看到 COM DLL,而 ASP.NET 可以运行 AnyCPU?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15685555/

相关文章:

asp.net - 如何配置在生产服务器上运行的ASP.NET应用程序?

javascript - 单选按钮组的 jQuery 迭代验证

.net - 我怎么能忽略 git 存储库中的 bin 和 obj 文件夹?

c# - 用于在独立线程中同时读取/写入同一文件的不同部分的多个 FileStreams

c# - : Conversion operators cannot convert from an interface type如何解决

c# - JavaScript 运行时错误 : Unable to get property 'msie' of undefined or null reference

c# - 如何更改 ASP.Net MVC 5 中的默认 "[field value] already taken"错误消息?

.net - PreserveExistingDefaults 的用途?

.net - 这是为 COM 注册 .NET 类型的一种可能方法吗

c++ - _bstr_t 不是已知标识符