我在我的Web应用程序中使用大约15-20个传统的32位C++ COM DLL,其中一些32位DLL具有第三方依赖项,这些依赖项是DLL的COM或本机.
我正在考虑迁移到Windows Azure,我理解这是一个64位平台.任何人都可以建议我的32位DLL是否可行?(我知道现在可以对它们进行regsvr32).
经过一两个星期的工作,我可以将我的DLL重新编译为64位,但是由于我没有源代码,这对于第三方依赖项是不可能的.
我知道Windows Azure使用64位,所以我想知道这里迁移我的应用程序的最佳方法是什么?
即我应该移动32位DLL并依赖WoW64 - 这甚至可以工作吗?我不介意一个小的性能打击.
或者更好的是重新编译我的64位应用程序并以某种方式使用32位DLL?
答案是肯定的.Windows Azure就像普通的Windows Server 2008 x64一样,它有32位子系统.这里唯一的限制是Web角色和辅助角色托管过程是64位.
考虑到这一点,您将不得不在64位主机进程和32位DLL之间进行某种互操作.当然,在这种情况下,inproc COM对象将不起作用.在不知道细节的情况下,很难给出更具体的建议:
我不知道它是否可行,但另一个需要考虑的选择是试图强迫你的应用程序池以32位进程运行.您需要以完全信任的方式在IIS模式下运行并将其作为角色启动任务运行:
appcmd apppool set /apppool.name:/ enable32BitAppOnWin64:true
您必须确定将使用您的应用程序的应用程序池的名称.而且,我不确定它会起作用,但我想这值得一试,因为如果它有效,它将是最简单的选择.
| 归档时间: |
|
| 查看次数: |
2810 次 |
| 最近记录: |