【发布时间】:2011-07-23 18:51:47
【问题描述】:
我有一个作为 Web 服务公开的 BW 进程,并希望使用 C# .NET 表单来使用它。但是,我的应用程序一直显示异常:没有 body 元素的处理程序,以及以下堆栈跟踪(如下所示)。我在测试模式下运行了BW进程来检查进程状态,发现请求从未到达BW。我还使用soapUI 测试了相同的过程,完美地触发了Web 服务请求。有什么建议吗?
我的代码如下:
ServiceReference1.PortTypeClient client = new ServiceReference1.PortTypeClient();
ServiceReference1.new_incident_report report = new ServiceReference1.new_incident_report();
report.contact_details = new ServiceReference1.contact_details();
report.contact_details.name = "John Doe";
report.contact_details.contactno = "1234567890";
report.incident_details = new ServiceReference1.incident_details();
report.incident_details.date = new DateTime();
report.incident_details.time = new DateTime();
report.incident_details.location = "80 Dutch Road";
report.operator_comments = new ServiceReference1.operator_comments();
report.operator_comments.operator_name = "Bob";
report.operator_comments.operator_summary = "Something";
MessageBox.Show(client.processOperation(report));
服务器堆栈跟踪: 在 System.ServiceModel.Channels.ServiceChannel.HandleReply(ProxyOperationRuntime 操作,ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出,TimeSpan 超时) 在 System.ServiceModel.Channels.ServiceChannel.Call(字符串操作,布尔单向,ProxyOperationRuntime 操作,Object[] 输入,Object[] 输出) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage 方法调用,ProxyOperationRuntime 操作) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)
在 [0] 处重新抛出异常: 在 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg,IMessage retMsg) 在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData,Int32 类型) 在 MyWebServiceConsumer.ServiceReference1.PortType.processOperation(processOperationRequest 请求) 在 c:\users\ystan.2009\documents\visual studio 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Service References\ServiceReference1\Reference.cs:line 中的 MyWebServiceConsumer.ServiceReference1.PortTypeClient.MyWebServiceConsumer.ServiceReference1.PortType.processOperation(processOperationRequest 请求) 327 在 c:\users\ystan.2009\documents\visual studio 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Service References\ServiceReference1\Reference.cs:line 333 中的 MyWebServiceConsumer.ServiceReference1.PortTypeClient.processOperation(new_incident_report new_incident_report) 在 c:\users\ystan.2009\documents\visual studio 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Form1.cs:line 44 中的 MyWebServiceConsumer.Form1.button1_Click(Object sender, EventArgs e) 处
【问题讨论】:
-
您是否尝试过通过代理发送您的 soapui 和 .net 请求,记录收到的内容并进行比较?否则,您还可以使用wireshark 捕获请求。
标签: .net web-services integration tibco businessworks