【问题标题】:IIS7 VB6 DebuggingIIS7 VB6 调试
【发布时间】:2010-11-20 08:43:02
【问题描述】:

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

“在检查权限时调用 Server.CreateObject 失败。访问此对象被拒绝”

这只发生在我在 VB6 中启动 dll 并访问 ASP 应用程序时。在 IIS7 之前,这将允许您进入 VB6 dll。有什么想法吗?

【问题讨论】:

标签: iis-7 vb6 asp-classic


【解决方案1】:

我最近在我们的开发环境中从 WinXP 到 Win7 有同样的经历,并且对我们的一些旧应用程序有同样的痛苦。这是我修复它的方法。

明确地说,我们的 Classic ASP 网站调用了我们内部的 VB6 .dll,而我希望能够进入和调试这些 .dll 文件。

启用 32 位应用程序

在应用程序池部分,右键单击网站的应用程序池并选择“高级设置”。

  • 将“启用 32 位应用程序”更改为“真”。

  • 将“托管管道模式”更改为“经典”。

ASP 身份验证

正如@GregWoods 建议的那样,在IIS 中检查网站的身份验证详细信息,如下:

  • 匿名身份验证 - 已禁用
  • ASP.Net 模拟 - 已禁用
  • 基本身份验证 - 已启用
  • 表单身份验证 - 已禁用
  • Windows 身份验证 - 已启用

在 Visual Basic IDE 中运行 VB6 应用程序并打开 Web 浏览器;导航到网站,当代码进入外部 VB6 .dll 时,Visual Basic 6 环境现在应该在代码中设置的断点处停止。哒哒。

更进一步??

我还希望能够在 VS2010 或 VS2012 中自己调试实际的 Classic ASP 页面......这也是完全可能的,但还有一个额外的步骤可以添加到这个列表中,只是为了指示 IIS:

在 IIS 中,单击之前创建的网站,然后在“功能”视图中,单击“ASP”。

  • 展开“调试属性”选项组。

  • 将“启用客户端调试”更改为“真”。

  • 将“启用服务器端调试”更改为“真”。

  • 单击“应用”以保存。 (“操作”窗格的右上角)。

然后,为了使 Visual Studio 在断点处停止,您必须附加到进程:

  • 转到“工具”菜单,然后选择“附加到进程...”

  • 将“附加到”选项更改为“自动:本机代码”

  • 选择“w3wp.exe”进程并点击“附加”。

现在,当您在选择的浏览器中打开网站并导航到您的网站时,IIS 和 VS2010/VS2012 将协同工作,Visual Studio 将在任何断点处停止。

希望对你有所帮助。

【讨论】:

    【解决方案2】:

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

    据此,我无法确定注册表项或 DCOM 权限更改(均来自 q259725)是否有助于修复。

    希望这对某人有所帮助!

    【讨论】:

      猜你喜欢
      • 2011-12-19
      • 1970-01-01
      • 1970-01-01
      • 2011-03-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-02-27
      相关资源
      最近更新 更多