在经典ASP中利用SOAP

时间:2008-10-30 16:34:25

标签: asp.net rest soap asp-classic

  

澄清:这不是关于用户代理对页面的调用,而是经典ASP调用ASP.NET!

我的应用程序是从Classic ASP到ASP.NET的过渡中途。有50万行代码,所以一次完全重写所有内容根本不合理,或者考虑到绝大多数经典ASP页面工作得很好而坦率谨慎。我们将页面和功能翻译为无论如何,而不仅仅是因为它“酷”。

现在大约有一半的页面已被转换,我们已将一些关键功能转移到ASP.NET。我没有保留这个功能的遗留版本(这意味着维护两个地方而不是一个),而是开始使用SOAP来公开这个功能。

嗯......不是真的。相反,我们一直在使用我曾经称之为“穷人的肥皂”,尽管今天把它称为REST是时髦的。我一直在使用ServerXMLHTTP来联系目标页面,捆绑一个XML球并将其发布到ASP.NET端。结果我一直在捆绑一些XML并使用XPATH将其拆分为变量。

所有这些都令人惊讶地发挥作用。但是,我一直在考虑内置的ASP.NET SOAP功能,这似乎消除了为我的跨平台调用自定义写入登录页面的需要......但是当我看到从Classic ASP中使用SOAP时,大多数建议使用貌似折旧的肥皂工具包。

问题是;你们有没有这种设置的经验,如果有的话,还有比自定义REST页面或Soap Toolkit更好的方法吗?我认为能够更快地公开更多的ASP.NET功能将有助于迁移,但我不想让自己陷入像Soap Toolkit这样的遗留技术的不必要。

3 个答案:

答案 0 :(得分:4)

进行更多搜索我找到了

  

Calling REST web services from a classic asp page

又与

相关联
  

http://www.aspfree.com/c/a/ASP/Consuming-a-WSDL-Webservice-from-ASP/

这就是我现在正在做的事情,所以也许这是最好的解决方案?

答案 1 :(得分:1)

我使用Prototype和许多用于AJAX调用的经典ASP页面。我更喜欢使用JSON而不是XML来处理数据层。与SOAP + XML相比,Ajax + JSON更轻,更快,更易于处理。

答案 2 :(得分:1)

我能够使用以下代码执行此操作,显然您需要更改一些内容,但希望这可以帮助您入门:

Set xmlhttp = CreateObject("MSXML2.ServerXMLHTTP")                          
xmlhttp.open "POST", soapServer, False
xmlhttp.setRequestHeader "Content-Type", "text/xml; charset=utf-8"
xmlhttp.setRequestHeader "SOAPAction", char(34) & "WebPlatform.WebServices/ISessionTokenServiceV1/CreateSessionToken" & char(34)

xmlhttp.send soapMessage

soapMEssage将是您发送的肥皂请求。 soapServer是Web服务的URL,例如:http://localhost:8000/WebServices/SampleService.svc/BASIC