Call .NET ASMX from ASP

Let's say you have an ASMX webservice written in C# or VB.NET or some other .NET language, and you want to call it from an ASP page written in VBScript.

There are a couple of ways to do this.

  1. Use the MS Soap Toolkit.

    But as the download page states, this toolkit will be retired in April 2005. This means Microsoft will no longer support its use.  This would mean, for example, that if a security bug were found in the toolkit after April 2005, Microsoft would not be bound to correct it and issue a patch.  Because of this, most developers are not writing new code on the SOAP Toolkit.

  2. Write a client of the webservice in C# (or VB.NET) and have that *client* expose a COM interface.  You would do this with tlbexp.exe and follow along the guidelines for COM--to-.NET interop.   In this case the ASP page would call the COM component, which would then act as the client to the webservice.
  3. If the webservice is simple, then you may be able to use MSXML to make the call.  Here is an example.

    and here's an article covering that technique:

  4. Use an alternative SOAP toolkit for COM-based environments (like VBScript).  PocketSOAP is one.

Are there other ways to do this? 


Comments (4)

  1. Dino says:

    According to

    …the webservice behavior enables client-side script to invoke remote methods exposed by Web Services, or other Web servers, that support the SOAP and Web Services Description Language (WSDL) 1.1.

    Client-side script, not server-side script.

    So yes, this gives you the ability to invoke a webservice, but not really from server-side ASP.

    I have updated the title on this post accordingly. The original title was "Call .NET ASMX from VBScript" and now it is "Call .NET ASMX from ASP" .

  2. ptau says:

    yes, webservice behavior is a client-side technics. but if you take a closer look at this source (jscript with some xml meta declarations) you’ll find a complete set of soap/webservice operations (much more complete than at link #3 in original post). the only action needed is replacement of the client-side call (XMLHttp) to its server-side equivalent.

Skip to main content