IIS7 VB6调试

5

我最近从XP升级到Win 7。我曾经能够从一个ASP classic应用程序调试进入VB6。但是现在我得到了一个错误:

"The call to Server.CreateObject failed while checking permissions. Access is denied to this object"

只有当我在VB6中启动dll并访问ASP应用程序时才会出现这种情况。在IIS7之前,这将允许您步入VB6 dll。有什么想法吗?


你尝试过以管理员身份运行VB6吗? - Mark Hall
我已经在这里回答了 https://dev59.com/FF7Va4cB1Zd3GeqPOOlv#14165582。 - yuben
2个回答

4
最近我在我们的开发环境中从WinXP升级到Win7时,遇到了与一些旧应用程序完全相同的困扰。以下是我如何解决它的方法。
明确一点,我们的经典ASP网站调用我们内部VB6 .dll文件,而正是这些.dll文件我想能够进入和调试。
启用32位应用程序
在应用程序池部分,右键单击网站的应用程序池,然后选择“高级设置”。
更改“启用32位应用程序”为“True”。
将“托管管道模式”更改为“Classic”。
ASP身份验证
如@GregWoods所建议的那样,在IIS中检查网站的身份验证详细信息,如下所示:
匿名身份验证 - 禁用
ASP.Net模拟 - 禁用
基本身份验证 - 启用
表单身份验证 - 禁用
Windows身份验证 - 启用
在Visual Basic IDE中运行VB6应用程序并打开Web浏览器;导航至网站,并且当代码进入外部VB6 .dll时,Visual Basic 6环境现在应该停止在设置的断点上。完成。
更进一步?
我还想能够从VS2010或VS2012内部调试实际的经典ASP页面...这也是完全可能的,但需要添加一个额外的步骤到此列表中,只需指示IIS:
在IIS中,单击先前创建的网站,在“ASP”中单击“特性”视图。
展开“调试属性”选项组。
将“启用客户端调试”更改为“True”。
将“启用服务器端调试”更改为“True”。
单击“应用”以保存。(操作窗格右上角)。
然后,为了使Visual Studio停止在断点处,您必须附加到进程:
转到“TOOLS”菜单,选择“附加到进程...”
将“附加到”选项更改为“自动:本机代码”
选择“w3wp.exe”进程,然后单击“附加”。
现在,当您在所选浏览器中打开网站并导航至您的网站时,IIS和VS2010/VS2012将相互协作,Visual Studio将在任何断点处停止。
希望这能对您有所帮助。

1

我刚遇到了同样的问题,在应用上述“修复”之后,仍然存在问题。我发现确保Web应用程序关闭匿名身份验证(我改用Windows身份验证)最终允许我从经典ASP调试vb6。

从这个结果来看,我无法确定注册表项或DCOM权限更改(均来自q259725)是否对修复有所贡献。

希望这能帮助到某些人!


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接