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.
    www.microsoft.com/downloads/details.aspx?FamilyId=C943C0DD-CEEC-4088-9753-86F052EC8450&displaylang=en

    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.
    msdn.microsoft.com/library/en-us/vbcn7/html/vaconIntroductionToCOMInteroperability.asp

  3. If the webservice is simple, then you may be able to use MSXML to make the call. Here is an example.
    <cheeso.members.winisp.net/srcview.aspx?dir=web-services&file=Soap-v4.js>

    and here's an article covering that technique:
    <www.eggheadcafe.com/articles/20001006.asp>

  4. Use an alternative SOAP toolkit for COM-based environments (like VBScript). PocketSOAP is one.
    <www.pocketsoap.com/pocketsoap/>

Are there other ways to do this?

-Dino