从传统ASP调用WCF服务

时间:2009-07-23 20:42:45

标签: wcf asp-classic

有没有人有经典asp页面调用WCF服务的好例子?我看了

Calling REST web services from a classic asp page [closed]

它让我更接近,但我需要将参数传递给服务,我不知道如何用wcf做到这一点?目前我刚回到wsdl。

2 个答案:

答案 0 :(得分:2)

最好的方法是在C#或VB.NET中创建一个类。此类将其公共方法公开为COM对象。所有类都将调用Web服务并返回结果。

然后,您就可以使用Classic ASP中的这个COM对象,它不会知道它与21世纪的联系。

顺便说一句,这是从VBSCRIPT重构功能并进入.NET现代世界的好方法 - 一次只做一个COM对象。稍后,如果您想要将页面转换为ASP.NET(或者从现在起十年后继续转换),您至少会将所有业务逻辑都考虑在内,并且ASP.NET将能够调用它。

答案 1 :(得分:1)

您还可以使用MSXML2.ServerXMLHTTP对象在asp中进行调用。这是我调用我的一个服务并发送json有效负载的一个例子。

<script language="javascript" runat="server" src="/engine/includes/json2.js"></script>

<%
    DIM xmlhttp, response, objRequest, txtRequest, test
    DIM url : url = "https://myservice.com/Service.svc/json/Test"

    SET objRequest = JSON.parse("{}")
    objRequest.set "param1", "echo this text"

    set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")

    xmlhttp.setOption 2, 13056   'ignore certificate errors for development machines
    xmlhttp.open "POST", url, false
    xmlhttp.setRequestHeader "Content-Type", "application/json"
    txtRequest = JSON.stringify(objRequest)
    xmlhttp.send txtRequest
    response = xmlhttp.responseText
    Response.Write response
%>

对于JSON解析我正在使用DouglasCrockford的库 - https://github.com/douglascrockford/JSON-js/blob/master/json2.js