【发布时间】: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