Classic asp中的Web服务

时间:2009-07-16 14:42:01

标签: web-services asp-classic

首先,这是我关于网络服务的第三个问题,我非常感谢guyz帮助我,但是有些东西丢失了,这是不对的 这是我从我的一个问题中得到的代码

    Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP")
oXmlHTTP.Open "POST", "http://www.oursite.com/WebServices/ourService.asmx?WSDL", False 

oXmlHTTP.setRequestHeader "Content-Type", "application/soap+xml; charset=utf-8" 
oXmlHTTP.setRequestHeader "SOAPAction", "http://ourNameSpace/ourFunction"

SOAPRequest = _
  "<?xml version=""1.0"" encoding=""utf-8""?>" &_
  "<soap12:Envelope xmlns:xsi=""http://www.w3.org/2001/XMLSchema-instance"" xmlns:xsd=""http://www.w3.org/2001/XMLSchema"" xmlns:soap12=""http://www.w3.org/2003/05/soap-envelope"">" &_
    "<soap12:Body>" &_
      "<ourFunction xmlns=""http://ourNameSpace/"">" &_
        "<var1>" & Session("userid") & "</var1>" &_
        "<var2>" & Session("internetid") & "</var2>" &_
      "</ourFunction>" &_
    "</soap12:Body>" &_
  "</soap12:Envelope>"

oXmlHTTP.send SOAPRequest

现在我的网络服务链接

http://buergerserviceschul.niedersachsen.de/modules/id/public/webservice/V4_00/rpc_lit/?wsdl

当我打电话给提供所有细节和所有必要内容的网络服务时,我仍然无法从这个程序中得到任何令人沮丧的输入。 我的意思是我什么也得不到,我得到了空洞的回答,而如果我使用旧的方式,我建议不要使用肥皂客户端,即

Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30")
oSOAP.ClientProperty("ServerHTTPRequest") = True

现在通过这种方式我至少得到一个会话ID,但即使使用这个程序,我再也无法走得更远 所以guyz我坚持这个问题

我需要调用函数并获取xml作为回报,但我没有得到任何回报

我是如何调用该服务使其不响应,但如果是这种情况那么它会给出错误,因为如果我在代码中做任何错误就会发生错误。

在这方面如此友好地帮助我 我非常感谢你的帮助。 感谢

3 个答案:

答案 0 :(得分:2)

不要使用“?WSDL”。这只是为了检索WSDL。

此外,即使在VBSCRIPT中,也不要永远通过字符串连接来构建XML。始终使用XML API来创建XML。


我认识到很多人仍在使用Classic ASP别无选择。 (*)仍然,你应该欢迎任何机会不写更多的VBSCRIPT,有人必须维护(甚至你)。相反,编写一小段C#代码将Web服务公开为COM对象。您可以使用常规的“添加服务引用”技术,但VBSCRIPT会将其视为普通的COM对象。我会看看能否找到一个例子。


(*)也许如果我们开始称它为“糟糕,臭,ASP”,管理层会更快地摆脱它吗?但也许不是,然后我们会被这个名字所困扰。

答案 1 :(得分:0)

如桑德斯先生所说,不要使用“?WSDL”,而是替换

http://www.oursite.com/WebServices/ourService.asmx?WSDL

http://www.oursite.com/WebServices/ourService.asmx

答案 2 :(得分:0)

最终我同意John,在VBScript中做这件事,使用C#dll来完成工作并在ASP中公开COM接口。

但是你可能会考虑一些事情。首先不要使用Microsoft.XMLHTTP它不是线程安全的。请改用CreateObject("MSXML2.ServerXMLHTTP")

使用Fiddler诊断出错的地方。使用SOAP启动fiddler然后发出

ProxyCfg -u
命令行上的

。您将在fiddler中看到服务器之间的确切对话。如果您有另一个此SOAP接口示例正常工作,请使用fiddler检查该会话的HTTP会话。

现在切换到新代码并检查由此生成的请求。您应该能够从这些数据中确定您需要对标题和XML进行哪些更改。

请记得发出

Proxycfg -d

关闭小提琴手之前。