How do I convert use of MSXML2.SERVERXMLHTTP from Classic ASP to C# in ASHX

Keith McElroy
Keith McElroy used Ask the Experts™
For years we have been using the following vb code in a Classic ASP page to retrieve data from a software product.
To boost performance and get away from Classic ASP, I need to ASHX C# equivalent of the following  

    //set h = CreateObject("MSXML2.SERVERXMLHTTP")
    //"POST", "http://localhost/isapi/webapi.dll"  //this is a software provided dll that accepts xml objects and returns xml response objects
    //h.setOption(2) = 4096
    //response.Write("<br><textarea rows=\"20\" cols=\"60\">" + h.responseText + "</textarea>");    
    //for each response in h.responseXml.selectnodes("//Response")
    //response.Write("<br><textarea rows=\"20\" cols=\"60\">" + response.xml + "</textarea>");
Watch Question

Do more with

Expert Office
EXPERT OFFICE® is a registered trademark of EXPERTS EXCHANGE®
Big MontyWeb Ninja at large

here's an example taken from here:

using System;
using MSXML2;  // Need to add a reference to C:\Windows\System32\msxml3.dll
namespace ConsoleApplication1
    class Program
        static void Main(string[] args)
            ServerXMLHTTP srv = new ServerXMLHTTP();
  "GET", @"", false,null,null);

Open in new window


I found and tried this before posting.
The ashx page tolerates the using MSXML2 but when I introduce  ServerXMLHTTP srv = new ServerXMLHTTP();
the page errs.  Screenshot of source

This example is using GET.  My example uses POST and I believe that along with the other parameters are mandatory
for the software provided dll to consume this request.

Need more help specific to the example.

Big MontyWeb Ninja at large

the attached image doesnt show the error you're getting. Please copy and paste it here.


<!DOCTYPE html>

<html xmlns="">

    <form method="post" action="./DefaultRedirectErrorPage.aspx?aspxerrorpath=%2fFinance%2fxml%2fstyle%2fcustom%2fsjsf%2fTOWEBFRM%2frunner%2frunner.ashx" id="form1">
<div class="aspNetHidden">
<input type="hidden" name="__VIEWSTATE" id="__VIEWSTATE" value="VgIBDmu9oT6Y/7u89GwgU8wHga8mHvyXH6yfTWXMquBaHJ7OivahUHGVMe/MG/qDQ+bqbC5zS69JgC0CwCTy2T3pk2rnyIZjNlM5bdPqHIm3Izs/" />

<div class="aspNetHidden">

      <input type="hidden" name="__VIEWSTATEGENERATOR" id="__VIEWSTATEGENERATOR" value="EAED47BF" />
      <input type="hidden" name="__VIEWSTATEENCRYPTED" id="__VIEWSTATEENCRYPTED" value="" />
Software Team Lead
〉〉To boost performance and get away from Classic ASP, I need to ASHX C# equivalent of the following  

you got to use .net class such as WebClient to send a web request.

there are also other similar ways to do that using other .net classes

Do more with

Expert Office
Submit tech questions to Ask the Experts™ at any time to receive solutions, advice, and new ideas from leading industry professionals.

Start 7-Day Free Trial