简介
Web Service 的故障处理会是一件很困难的事情,因为很多方面都会发生问题。这篇文章描述了你可能会遇到的各种问题,并说明应如何来处理它们。特别的,我们将讨论如下问题:
· 回顾SOAP请求
· 深入服务器端Visual Basic代码
· 深入服务器端Visual C++代码
· 跟踪SSL问题
· 深入Favorites Service中的问题
回顾SOAP请求 当开发一个简单对象访问协议(SOAP)客户端应用程序或服务器终端时,有一大堆东西可能出错。例如,SOAP请求可能不符合Web Service 描述语言(WSDL)规范,或SOAPAction项是错的。为了调试这些问题,你需要一个工具来查看SOAP请求和消息交换。在Microsoft? Windows?平台上,你有两个很好的工具。如果你只是想要调试SOAP请求,你应该下载Microsoft SOAP Toolkit 2.0,得到SOAP跟踪工具(MsSoapT.exe)。当你想要查看整个HTTP信息,请去http://www.pocketsoap.com/下载tcpTrace。这两个工具是互补的。你应该怎样查看SOAP请求呢?
这两个工具都是通过截取并发送请求来查看SOAP请求的。要截取请求信息,你必须让你的客户端使用跟踪工具正在监听的端口。假定你在客户端用一个WSDL文件来建立调用,你必须将该文件装载到你的机器上,并编辑服务部分。在一台机器上,我们有一个Web Service ,它的服务部分如下:
<service name='ArticleDemo' > <port name='ExampleSoapPort' binding='wsdlns:ExampleSoapBinding' > <soap:address location='http://hopehubris/test/ArticleDemo.WSDL' /> </port> </service> |
上面这个部分规定了ArticleDemo这个Web Service 的SOAP终端在http://hopehubris/test/ArticleDemo.WSDL默认的HTTP端口监听,即80端口。为了从该端口监听来往的消息,你必须编辑该文件以监听本机上另一个端口。要监听8080端口,你应将文件做如下修改并保存:
<service name='ArticleDemo' > <port name='ExampleSoapPort' binding='wsdlns:ExampleSoapBinding' > <soap:address location='http://localhost:8080/test/ArticleDemo.WSDL' /> </port> </service> |
经过以上改动,启动MsSoapT.exe或者tcpTrace.exe并告知它监听8080端口,然后将请求发向hopehubris的80端口(见图一和图二)
图一 配置MSSoapT.exe |
图二 配置tcpTrace.exe |
通过以上方法,你可以查看进出的请求了。当所有的通讯正常工作,你只需要调试SOAP消息时,MSSoapT.exe是一个很好的工具。图三中显示了正常的消息交换。
图三 MSSoapT.exe中正常的交换 |