我的问题是类似SOAP请求客户端web服务用vb.net
How do I send/Receive SOAP messages usiung .NET
我想调用Web服务,但不喜欢的链接显示above.What我所做的就是,创建方式与WSDL URL服务引用(在Windows应用程序与一个按钮点击事件)
http://ipaddress:port/My/MyService?wsdl
已经创建了一个客户对象
Dim objProxy As MyClient = New MyClient()
我已填充的objrequest和objreqheader使用下面的方法,(分配字符串值,而不是XML)
objreqheader.id = "abcd"
最后以下行调用服务
objresponsehead = objProxy.myoperation(objreqheader, objrequest, objresp)
从参考VB,这是我的手术公共职能
Public Function myoperation(ByVal RequestHeader As AFA.RequestHeaderType, ByVal GetTransactionDetailsReq As AFA.GetTransactionDetailsReqType, <System.Runtime.InteropServices.OutAttribute()> ByRef GetTransactionDetailsResp As AFA.GetTransactionDetailsRespType) As AFA.ResponseHeaderType
Dim inValue As AFA.getTransactionDetailsRequest = New AFA.getTransactionDetailsRequest()
inValue.RequestHeader = RequestHeader
inValue.GetTransactionDetailsReq = GetTransactionDetailsReq
Dim retVal As AFA.getTransactionDetailsResponse = CType(Me,AFA.myservice).getTransactionDetails(inValue)
GetTransactionDetailsResp = retVal.GetTransactionDetailsResp
Return retVal.ResponseHeader
End Function
问题是我的objresp是空的。没有产生异常,objresponsehead被填充为“abcd”。该服务未被调用。我不知道如何从应用程序配置文件中获取跟踪文件,以调试问题。我记得,当我第一次使用它时,出现了一个错误“没有可以接受消息的端点监听”,但现在没有错误。
我在应用程序配置文件中添加了以下内容以获取跟踪信息,以了解发生了什么。但没有看到任何生成的跟踪文件(trace.log)。
<system.diagnostics>
<trace autoflush="true">
<listeners>
<add type="System.Diagnostics.TextWriterTraceListener" name="TextWriter" initializeData="trace.log" />
</listeners>
</trace>
</system.diagnostics>
我检查了objProxy的属性,它具有基本的http绑定作为属性。 任何人都像这样调用了这个服务?从soapui,响应是好的,我填充请求字段。
如何启用跟踪以查看请求将要发送的内容以及问题的位置。
起初,我得到了一个错误“了。在序列化消息getTransactionDetailsRequest的身体一个错误:‘有一个错误生成XML文档。’请参阅的InnerException更多细节 - 。 - > System.InvalidOperationException:生成XML文档时发生错误---> System.ServiceModel.Diagnostics.PlainXmlWriter + MaxSizeExceededException“。当我改变大小时,错误消失。但是,无法看到生成的任何日志。 – Suresh 2011-12-28 12:17:26
忽略我上面的评论。 – Suresh 2011-12-29 09:28:31
我以前遇到的问题是响应不符合wsdl。这个,我使用soapui工具中的验证响应选项进行检查。有没有什么办法可以在.net客户端中生成与此相关的日志?除了响应对象为空,即使我能在跟踪日志中看到响应xml,我的.net客户端中也没有例外。 – Suresh 2011-12-29 15:57:56