Web services 经典asp中的Web服务
首先,这是我在这里提出的关于web服务的第三个问题,我非常感谢guyz帮助我解决了这个问题,但仍然缺少了一些不正确的东西 这是我从一个问题中得到的代码Web services 经典asp中的Web服务,web-services,asp-classic,Web Services,Asp Classic,首先,这是我在这里提出的关于web服务的第三个问题,我非常感谢guyz帮助我解决了这个问题,但仍然缺少了一些不正确的东西 这是我从一个问题中得到的代码 Set oXmlHTTP = CreateObject("Microsoft.XMLHTTP") oXmlHTTP.Open "POST", "http://www.oursite.com/WebServices/ourService.asmx?WSDL", False oXmlHTTP.setRequestHeader "Conte
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
当我调用提供所有细节和所有必要内容的web服务时,仍然无法从这个过程中获得任何类型的输入,这是令人沮丧的。
我的意思是,我什么也得不到,我得到的是空洞的响应,而若我使用旧的方法,那个么我被建议不要实现那个种方法,那个就是使用soap客户端
Set oSOAP = Server.CreateObject("MSSOAP.SoapClient30")
oSOAP.ClientProperty("ServerHTTPRequest") = True
现在,这样我至少可以得到一个会话id,但同样,即使使用此过程,我也无法继续,
所以伙计,我被困在这个问题上了
我需要调用函数并得到xml作为回报,但我没有得到任何回报
我调用服务的方式使它不响应,但如果是这样的话,它就会给出错误,就像我在代码中犯了错误一样
因此,请在这方面帮助我
我将非常感谢你帮我这个忙。
谢谢不要使用“?WSDL”。这只是为了检索WSDL
此外,即使在VBSCRIPT中,也不要通过字符串连接构建XML。始终使用XMLAPI来创建XML
我认识到许多人仍然使用经典的ASP,他们几乎没有选择。(*)尽管如此,您还是应该欢迎任何机会,不要编写更多需要别人维护(甚至可能是您)的VBSCRIPT。相反,编写一小段C#代码将web服务作为COM对象公开。您可以使用普通的“添加服务引用”技术,但VBSCRIPT会将其视为普通COM对象。我会看看能不能找到一个例子
(*)也许如果我们开始称它为“蹩脚、臭、ASP”,管理层会更快地摆脱它?但也许不是,然后我们就会被这个名字所困扰。正如桑德斯先生所指出的,不要使用“?WSDL”,而是替换它 “” 与
最终我同意John的观点,放弃使用VBScript,使用C#dll来完成这项工作,并公开一个COM接口以在ASP中使用 然而,有些事情你可能会研究。首先,不要使用Microsoft.XMLHTTP,因为它不是线程安全的。改用
CreateObject(“MSXML2.ServerXMLHTTP”)
要诊断出哪里出了问题,请使用。使用SOAP时,启动fiddler,然后发出
ProxyCfg -u
在命令行上。您将在fiddler中看到服务器之间的确切对话。如果您有另一个SOAP接口正常工作的示例,那么可以使用fiddler从中检查HTTP会话
现在切换到您的新代码并检查该代码生成的请求。您应该能够根据这些数据确定需要对标题和XML进行哪些更改才能使事情正常进行
记得发一封信
Proxycfg -d
在关闭fiddler之前。+1调用另一个库来执行web服务调用。嘿,guyz,我没有我提供的asmx文件url。如果我删除?wsdl,它甚至不会运行
Proxycfg -d