gpt4 book ai didi

windows-7 - 32 位 Windows 和 IIS 7 中的 Server.CreateObject( ) 失败

转载 作者:行者123 更新时间:2023-12-02 22:02:18 24 4
gpt4 key购买 nike

Windows 7 32 位,IIS 7.5.760016385

我在 Visual Basic 6.0 中创建了一个 DLL,并尝试在经典 ASP 代码中使用它:

set obj = Server.CreateObject("a.b")

我收到以下错误:

006 ASP 0178
Server.CreateObject Access Error
The call to Server.CreateObject failed while checking permissions. Access is denied to this object.
err.number = -2147024891

我尝试创建 iusr_cmpname 用户并在此 ASP 页面的默认网站和虚拟目录中为其授予权限。我已经对 dll 进行了 REGSVR32 处理。

我已转到“打开和关闭 Windows 功能”并选择了 IIS/万维网服务/应用程序开发功能,然后选中了 ASP、ASP.net、ISAPI 扩展和 ISAPI 文件管理器。

我在不同的新闻组中跟踪了许多线索,但我可以解决这个问题。我们去年、一年又 1/2 前尝试过这个,也遇到了同样的问题。由于我们无法解决这个问题,所以我们又回到了Windows NT。我们在 NT 上从来没有遇到过这个问题。

现在我们正在再次尝试克服这个问题,以便我们可以再次迁移到 Windows 7。似乎很多人都遇到了这个问题,但他们找到并发布的任何解决方案似乎都不是我需要的。

任何帮助将不胜感激。谢谢。

最佳答案

该问题似乎与 IIS 无法访问文件系统上您的自定义 VB6 Active X dll 有关。我在与默认 Web 应用程序相同的目录中注册了一个我创建的自定义 dll,并且能够让 ASP 创建该对象。

这就是我所做的:

  • 全新安装 Windows 7 Professional 64 位 SP1。

  • 启用 Windows ASP 功能

  • 此步骤仅适用于 64 位 Windows - 使用 IIS 管理器,为默认应用程序池启用 32 位应用程序。

enable 32-bit application pool

  • 创建一个简单的 VB6 Active X dll(类名为“CXUtils.Utils”),将两个输入数字相加并返回结果。

Utils.cls:

Public Function Sum(ByVal a As Integer, ByVal b As Integer) As Integer     
Sum = a + b
End Function
  • 这是重要的一步 - 在管理命令提示符中,在默认 Web 应用程序位置注册 Vb6 Active X dll:C:\inetpub\wwwroot

Register Custom VB6 DLL

  • 创建并安装一个简单的 asp 页面,实例化上面的 dll。安装位置是默认的 Web 应用程序位置 C:\inetpub\wwwroot

默认.asp:

<%@ Language=VBScript %>
<%
Option Explicit
Response.Expires = 0
Response.Expiresabsolute = Now() - 1
Response.AddHeader "pragma","no-cache"
Response.AddHeader "cache-control","private"
Response.CacheControl = "no-cache"

Function Sum(a, b)
Sum = a + b
End Function

Function Sum2(a, b)
Dim adder
set adder = Server.CreateObject("CXUtils.Utils")
Sum2 = adder.Sum(a, b)
set adder = nothing
End Function
%>
<html>
<head>
<title>Add</title>
</head>
<body>
<b>2 + 3</b> = <%= Sum(2,3) %><br />
<b>3 + 4</b> = <%= Sum2(3,4) %>
</body>
</html>
  • 浏览到网络应用并查看结果

Sample asp page results

如果这不能全部编译,我深表歉意 - 需要进行大量编辑才能使格式正确显示。

关于windows-7 - 32 位 Windows 和 IIS 7 中的 Server.CreateObject( ) 失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13822353/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com