В вашем файле CLIENT.ASPX есть несколько ошибок. Из того, что я вижу, вы используете серверный код для создания экземпляра элемента управления ActiveX, позволяющего сделать HTTP-запрос к SERVER.ASHX и прочитать поток ответов, который, в свою очередь, записывается в поток ответов на странице CLIENT.ASPX. Тот факт, что вы используете элемент управления ActiveX вместо стандартных .NET classes , заставляет меня думать, что вы переносите старый ASP-сайт в .NET. В этом случае первым делом нужно пометить ваши страницы директивой AspCompat = true :
<%@ Page Language="VB" AspCompat="true" %>
Следует также отметить, что вы используете неправильное имя ActiveX MSXML2.ServerXMLHTTP.4.0 вместо MSXML2.ServerXMLHTTP . Также вы пытаетесь установить заголовки запроса с помощью метода setRequestHeader перед вызовом метода open . Тот факт, что вы написали оператор On Error Resume Next , помешал вам увидеть все эти ошибки. Код только что прошел, и ваш обработчик SERVER.ASHX фактически никогда не выполнялся, поэтому вы получили пустой ответ. Вот исправленная версия вашего кода CLIENT.ASPX:
<%@ Page Language="VB" AspCompat="true" %>
<%
Dim myserver_url As String = "http://mydomain.com/Server.ashx"
Dim myparameters As String = "one=1&two=2"
Dim xmlhttp As Object
xmlhttp = Server.CreateObject("MSXML2.ServerXMLHTTP")
xmlhttp.open("POST", myserver_url, False)
xmlhttp.setRequestHeader("Content-Type", "application/x-www-form-urlencoded")
xmlhttp.Send()
If xmlhttp.Status = 200 Then
Dim myresults As String = ""
myresults = xmlhttp.responseText
Response.Clear()
Response.Write("<html><body><h1>" & myresults & "</h1></body></html>")
End If
xmlhttp = Nothing
%>
Конечно, предпочтительным способом достижения этого является либо использование клиентского языка сценариев, такого как javascript, либо, если вы хотите сделать это на стороне сервера, тогда используйте стандартные классы .NET вместо элементов управления ActiveX.