【问题标题】:same server, get url: vbscript msxml3.dll 80004005 unspecified error, or msxml6.dll error '80072ee6' System error: -2147012890同一台服务器,获取 url:vbscript msxml3.dll 80004005 未指定错误,或 msxml6.dll 错误 '80072ee6' 系统错误:-2147012890
【发布时间】:2015-08-29 23:17:07
【问题描述】:

获取位于同一服务器上的 asp 页面的输出的正确方法是什么?

<%

GetUrl "/route/to/abc/123/"

Function GetUrl(url)
    Set objXMLHTTP = CreateObject("MSXML2.ServerXMLHTTP.3.0")
    objXMLHTTP.open "GET", URL, false
    objXMLHTTP.send()
    If objXMLHTTP.Status = 200 Then
        Response.Write objXMLHTTP.ResponseText
    End if
    Set objXMLHTTP = Nothing
End Function

%>

导致这个讨厌的错误。

msxml3.dll error '80004005'
Unspecified error
/test.asp, line 7

切换到更新的 serverxmlhttp

set objXMLHTTP = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")

揭示了一个不同的、更有意义的错误:

msxml6.dll error '80072ee6'
System error: -2147012890.
/test.asp, line 8

哪个 google 高兴地找到了一个理由,上面写着“不要使用 serverXmlHttp 连接到同一台服务器。(https://support.microsoft.com/en-us/kb/316451) 你用什么?这篇文章没有提供太多。

无论如何,我的错误是有正当理由的。但是你用什么来连接到同一个服务器,在经典的 asp 下,来捕获页面的输出?这篇文章 (https://www.microsoft.com/technet/prodtechnol/WindowsServer2003/Library/IIS/aa23d158-000a-4ba2-8fe8-99895854d7f0.mspx?mfr=true) 提到如果我在做隔离模式,那么该进程将与 Web 服务器进程分开运行并且我无法使用 SSI,我不知道如何首先启用它.反正听起来很恶心。 SSI 在我的应用中关键,所以我不能考虑。

我还剩下什么(除了显而易见的:抛弃 ASP)?生成一个 wscript.shell 命令提示符并将其从那里拉出来,回显到标准输出?从另一个反射器服务器反弹?呸

【问题讨论】:

  • 由于您距离对 Windows Server 2003(和 IIS 6)的支持结束还有 30 天的时间,所以我认为您现在最关心的应该是迁移到 IIS 7+。

标签: vbscript iis-6 serverxmlhttp


【解决方案1】:

您不能从在同一应用程序池下运行的网站请求网页。

有限数量的工作线程(在 Inetinfo.exe 或 Dllhost.exe 进程)可用于执行 ASP 页。如果所有的 ASP 工作者 线程将 HTTP 请求发送回相同的 Inetinfo.exe 或 发送请求的服务器上的 Dllhost.exe 进程, Inetinfo.exe 或 Dllhost.exe 进程可能会死锁或停止 响应(挂起),因为要处理的工作线程池 传入的请求将被耗尽。这是设计使然。

如果单个递归请求导致 IIS 死锁,典型的 原因是启用了 ASP 脚本调试。

解决方法:新建一个文件夹,把你的脚本放在这个文件夹里。之后在 IIS 中创建新的应用程序池并为此文件夹创建新的应用程序。

如何为某个文件夹创建新应用程序:

文件夹分配给新应用程序池时的示例:

注意:不要尝试从同一个应用程序池下载网页的第 3 部分 DLL。结果将是相同的。使用一些免费的 http 组件进行了测试。

【讨论】:

  • 将脚本放入新文件夹需要在我的路由和视图中进行一些工程工作,但是,这比从命令 shell 中刮掉 wget 的输出要好...干杯 :)(ms 文档与谷歌建议的所有其他“修复”一起努力)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多