我遇到了与运行IIS7的64位Windows Server 2008服务器上的传统asp应用程序执行.dll相关的问题。情况如下:使用COM + .Net Interop 64位Windows Server 2008的经典ASP IIS 7 Server.CreateObject失败
我写了一个.Net C#程序集来执行一些加密任务。通过继承ServicedComponent,该组件可用于传统ASP环境,确保assemblyinfo文件具有ComVisible(true)属性,并且已使用“regsvcs”命令行安装该组件。
在我自己的桌面(运行IIS6的XP)上测试时,一切正常。当移动到IIS 7,Windows Server 2008时,我得到臭名昭着的“ASP 0177 Server.CreateObject失败”。
我曾尝试以下无济于事:
- 确保ASP和脚本扩展功能被安装在服务器上,因为这不是IIS7默认。这使我可以执行简单的ASP命令,但不能为.net程序集创建server.createobject。
- 启用了应用程序池32位应用程序支持支持传统的ASP网站
- 使用网络服务的身份应用程序池支持传统的ASP网站
- 尝试注册使用REGSVR32 DLL,它未能
- 我能够创建其他对象,如“scripting.filesystemobject”
- 将dll移到wow64目录,然后使用regsvcs注册它们。
- 是的,当我一直在执行regsvcs命令时,它们来自使用“RunAs”Administrator启动的命令行。 regsvcs命令从64位和32位版本都成功注册了 。但是,从传统的asp应用程序使用时,它会失败。
此问题与this one密切相关。但是,我认为这个问题更多地涉及到在服务器上使用工具,而不是类似于我的程序问题。
任何人有更多的想法尝试?
降级到Windows 2003?这听起来像你真的不需要2008. – NotMe 2009-08-15 03:29:13
不幸的是,对于这种情况,我没有降级到Windows 2003的选项。当我们将经典的asp应用程序迁移到.Net时,大多数网站都将建立在.Net中。 。所以,我认为我们必须弄清楚这个问题:( – Pat 2009-08-17 13:33:57