Asp classic 在同一服务器上调用页面的经典ASP例程

Asp classic 在同一服务器上调用页面的经典ASP例程,asp-classic,iis-8,iis-10,Asp Classic,Iis 8,Iis 10,我正在将旧的ASP应用程序从Windows Server 2012R2移动到新的Windows Server 2016标准版: 旧服务器使用IIS 8,新服务器使用IIS 10 此应用程序具有一些例程,可对托管在同一服务器上的页面进行MSXML2.ServerXMLHTTP.6.0调用: 问题是该例程在旧服务器上工作,但在新服务器上不工作 我建立了这个小程序来进行测试 <% Dim xmlhttp Dim payload payload="OID="&Timer*100

我正在将旧的ASP应用程序从Windows Server 2012R2移动到新的Windows Server 2016标准版: 旧服务器使用IIS 8,新服务器使用IIS 10

此应用程序具有一些例程,可对托管在同一服务器上的页面进行MSXML2.ServerXMLHTTP.6.0调用:

问题是该例程在旧服务器上工作,但在新服务器上不工作

我建立了这个小程序来进行测试

<%
  Dim xmlhttp
  Dim payload
  payload="OID="&Timer*100
  Set xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP.6.0")
  xmlhttp.setTimeouts 30,500,1000,1000
  xmlhttp.Open "GET", "http://sameserver.com/test.asp?"&payload , false
  On Error Resume Next
  xmlhttp.Send
  If Err.Number Then
    response.write "ERROR: Could Not Retrieve Remote Server <br>  Error Number: "&Err.Number&"<br>Error Description: "&Err.Description
    Err.Clear
  Else
    response.write = "OK: "&xmlhttp.ResponseText
  End If
  On Error Goto 0
  Set xmlhttp = nothing
%>
我认为新服务器上有一些不好/缺少的设置,可能是在IIS设置中,但我也尝试了一个非常简单的PHP测试,效果很好:

<?php
    $timer= new DateTime();
    $payload='OID='.$timer->format('Y-m-d%20H:i:s');
    $url='http://sameserver.com/test.asp?'.$payload;
    echo file_get_contents($url);
?>

很明显,我可以更改这些例程并使用PHP,但我担心这个错误也会造成其他目前尚未公开的问题

你能提出可能的原因,或者至少要进行哪些检查


谢谢你的回答是。Microsoft建议不要将ServerXMLHTTP设置为同一服务器。可能还有其他选择;从您发布的代码中很难看出您想做什么。

是的,实际上我忘记添加test.asp的内容,但这是一个简单的响应。编写OID无论如何我找到了解决方案,尽管同意MS reccomendations:
解决方法是(或者)禁用调试服务器端
<?php
    $timer= new DateTime();
    $payload='OID='.$timer->format('Y-m-d%20H:i:s');
    $url='http://sameserver.com/test.asp?'.$payload;
    echo file_get_contents($url);
?>