经典ASP ServerXMLHttp POST到ASP.NET不再工作

时间:2016-08-09 20:34:50

标签: c# asp.net asp-classic iis-8 windows-server-2012

我们最近从Server 2003迁移到Server 2012,这已不再适用。

我通过ServerXMLHttp调用向ASP.NET脚本发送XML

Set objXML = Server.CreateObject("MSXML2.ServerXMLHTTP")

objXML.setTimeouts tResolve, tConnect, tSend, tReceive 
objXML.open "POST", url, false
objXML.setRequestHeader "Content-type", "application/x-www-form-urlencoded; charset=UTF-8"

objXML.send(cxmlText)

目标

protected void Page_Load(object sender, EventArgs e)
{
    StreamReader reader = new StreamReader(Request.InputStream, Request.ContentEncoding);
    string xmlData = reader.ReadToEnd();

的Web.Config

<configuration>
<system.web>
    <compilation debug="true" targetFramework="4.0">
  <assemblies>
    <add assembly="System.Security, Version=4.0.0.0, Culture=neutral, PublicKeyToken=SOMETOKENVALUE"/>
  </assemblies>
        </compilation>
    <httpRuntime requestValidationMode="2.0" />
    <pages validateRequest="false" />
</system.web>

xmlData为空
Request.TotalBytes返回0
Request.RequestType返回POST

我已经确认请求中有数据,我也尝试了不同的请求标头值,如text / plain,text / xml以及多年来一直工作的app / form。我觉得我很喜欢看过IIS中的每个选项。

有关您认为没有数据的原因的任何想法,请告诉我。谢谢。

1 个答案:

答案 0 :(得分:0)

尝试将创建对象从#ifndef更改为MSXML2.ServerXMLHTTP

同时确保没有MSXML2.ServerXMLHTTP.6.0隐藏真正的错误。