2009-07-16 165 views
3

首先这是关于网络服务的第三个问题,我非常感谢guyz帮助我,但还有一些东西是不对的 这里是我已经得到的代码从矿山经典网页服务asp

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服务链接

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

当我给调用Web服务提供的所有细节和所有必要的东西,我仍无法得到来自这个程序的任何输入都是令人沮丧的ING。 我的意思是我什么也没有,空的回答,我得到的,而如果我用老办法,我建议不落实,其使用SOAP客户端即

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

现在这样我ATLEAST得到一个会话ID,但我再次不能进一步即使去使用这个程序, 所以guyz我停留在这个问题

我需要调用函数和得到的回报XML,但我没有得到回报什么

无论怎样我打电话该服务使其不作出回应,但如果那样的话,那么它就会有giv如果我在代码中犯了任何错误,它会发生错误。

好心帮我出来这方面 我会非常感谢你的这个好处。 谢谢

回答

2

请勿使用“?WSDL”。这只是为了检索WSDL。

另外,即使在VBSCRIPT中,也不要有史以来通过字符串连接构建XML。始终使用XML API来创建XML。


我认识到,仍然使用传统ASP的许多人没有多少选择。 (*)不过,你应该欢迎任何机会不写更多的VBSCRIPT,有人将不得不维护(甚至你)。相反,编写一小段C#代码将Web服务公开为COM对象。你可以使用普通的“添加服务引用”技术,但VBSCRIPT会将其视为一个普通的COM对象。我会看看我能否找到一个例子。 (*)也许如果我们开始称它为“蹩脚,臭味,ASP”,管理层会更快地摆脱它吗?但也许不是,然后我们会被卡住这个名字。

+0

+1用于呼叫另一个库执行Web服务调用。 – 2009-07-16 15:05:24

0

最终,我与约翰同意,沟在VBScript中执行此操作,使用C#dll执行此工作并公开COM消息使用ASP。

然而,有些事情你可能会看到。首先不要使用Microsoft.XMLHTTP,它不是线程安全的。改为使用CreateObject("MSXML2.ServerXMLHTTP")

要诊断出什么问题,请使用Fiddler。当使用SOAP启动提琴手时,然后在命令行上发出

ProxyCfg -u 

。你会看到在提琴手中的服务器之间的确切对话。如果您有另一个这个SOAP接口正常工作的例子,那么使用fiddler来检查HTTP会话。

现在切换到您的新代码并检查正在生成的请求。您应该能够根据这些数据确定对标题和XML所做的更改。

记住关闭前小提琴手发出

Proxycfg -d 

+0

嘿guyz,我没有asmx文件 我给了url 如果我删除?wsdl那么它不会运行 – chsab420 2009-07-17 11:30:26