Iis 7 使用COM+;的经典ASP。Net Interop 64位Windows Server 2008 IIS 7 Server.CreateObject失败
我遇到了一个与在运行IIS7的64位Windows Server 2008服务器上从经典asp应用程序执行.Net dll有关的问题。情况如下: 我已经编写了一个.NETC#程序集来执行一些加密任务。通过从ServicedComponent继承,此程序集可用于经典ASP环境,确保assemblyinfo文件具有ComVisible(true)属性,并且已使用“regsvcs”命令行安装 在我自己的桌面(XP运行IIS6)上测试时,一切正常。当移动到IIS 7、Windows Server 2008时,我得到了臭名昭著的“ASP 0177 Server.CreateObject失败” 我尝试了以下方法,但没有成功:Iis 7 使用COM+;的经典ASP。Net Interop 64位Windows Server 2008 IIS 7 Server.CreateObject失败,iis-7,asp-classic,64-bit,Iis 7,Asp Classic,64 Bit,我遇到了一个与在运行IIS7的64位Windows Server 2008服务器上从经典asp应用程序执行.Net dll有关的问题。情况如下: 我已经编写了一个.NETC#程序集来执行一些加密任务。通过从ServicedComponent继承,此程序集可用于经典ASP环境,确保assemblyinfo文件具有ComVisible(true)属性,并且已使用“regsvcs”命令行安装 在我自己的桌面(XP运行IIS6)上测试时,一切正常。当移动到IIS 7、Windows Server 200
有人有什么想法可以尝试吗?创建一个vbs测试文件并尝试在那里创建COM对象。如果您不能(即,您得到相同的错误),那么您的组件没有正确注册。
如果可以-则它安装正确,问题在于您的应用程序在IIS中执行时所使用的帐户缺乏权限。创建vbs测试文件,并尝试在那里创建COM对象。如果您不能(即,您得到相同的错误),那么您的组件没有正确注册。
如果可以-那么它安装正确,问题在于您的应用程序在IIS中执行时所使用的帐户缺乏权限。在这里提供了大量帮助并进行了更多研究之后,我们终于找到了答案。为了解决我们的问题,我们采取了以下措施:
- 不再从ServiceComponent继承(这没关系,因为我们实际上没有利用任何特定的COM+功能)
- 使用以下命令安装组件,必须按顺序进行: gacutil/i“C:\Inetpub\wwwroot\ASPTest*dll的名称*” regasm/tlb“C:\Inetpub\wwwroot\ASPTest*dll的名称*”
这个过程消除了最初的错误,还具有在IIS运行时替换dll的额外好处。在这里提供了大量帮助并进行了更多研究之后,我们终于找到了答案。为了解决我们的问题,我们采取了以下措施:
- 不再从ServiceComponent继承(这没关系,因为我们实际上没有利用任何特定的COM+功能)
- 使用以下命令安装组件,必须按顺序进行: gacutil/i“C:\Inetpub\wwwroot\ASPTest*dll的名称*” regasm/tlb“C:\Inetpub\wwwroot\ASPTest*dll的名称*”
它对我有效降级到windows 2003?听起来你真的不需要2008。不幸的是,在这种情况下,我没有选择降级到Windows 2003。当我们将经典的asp应用程序迁移到.Net时,大多数网站都将在.Net中构建。因此,我认为我们必须解决这个问题:(降级到windows 2003?听起来你真的不需要2008。不幸的是,在这种情况下,我没有降级到windows 2003的选项。当我们将经典asp应用程序迁移到.Net时,大多数网站将内置在.Net中。因此,我想我们必须解决问题:(感谢你的好主意。我成功地获得了一个VBS脚本来创建对象。因此,我开始查看权限。为了快速查看权限是否存在问题,我将以下本地帐户添加到administrators组(当然,只是为了测试)这仍然不允许asp页面创建对象:匿名登录身份验证用户交互式IUSR网络服务EveryoneCool。我们正在接近。请看这里:您是否已打开脚本和控件的32位兼容模式?另请查看第1页上的最后一篇文章。感谢这些想法。但是,我已经设置了pr属性:“启用32位应用程序”对于经典asp虚拟目录所使用的应用程序池为true。我相信上面链接中描述的脚本方法,只是做同样事情的前IIS7方法。现在它只是应用程序池中的一个配置选项…任何其他id