0

我有一个作为 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 operation, ProxyRpc& rpc) 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs , TimeSpan timeout) 在 System.ServiceModel.Channels.ServiceChannel.Call(String action, Boolean oneway, ProxyOperationRuntime operation, Object[] ins, Object[] outs) 在 System.ServiceModel.Channels.ServiceChannelProxy.InvokeService(IMethodCallMessage methodCall, ProxyOperationRuntime operation ) 在 System.ServiceModel.Channels.ServiceChannelProxy.Invoke(IMessage 消息)

在 [0] 处重新引发异常:在 System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke(MessageData& msgData, Int32 type) 在 MyWebServiceConsumer.ServiceReference1 处的 System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage(IMessage reqMsg, IMessage retMsg)。 PortType.processOperation(processOperationRequest request) at MyWebServiceConsumer.ServiceReference1.PortTypeClient.MyWebServiceConsumer.ServiceReference1.PortType.processOperation(processOperationRequest request) in c:\users\ystan.2009\documents\visual studio 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Service References\ ServiceReference1\Reference.cs:位于 c:\users\ystan 中 MyWebServiceConsumer.ServiceReference1.PortTypeClient.processOperation(new_incident_report new_incident_report) 的第 327 行。2009\documents\visual studio 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Service References\ServiceReference1\Reference.cs:在 c:\users\ystan.2009\documents\ 中 MyWebServiceConsumer.Form1.button1_Click(Object sender, EventArgs e) 的第 333 行视觉工作室 2010\Projects\MyWebServiceConsumer\MyWebServiceConsumer\Form1.cs:line 44

4

1 回答 1

1

对于仍在关注此问题的任何人,该解决方案似乎涉及手动制作 SOAP 数据包,该数据包会正确分派给 BW。由于某种原因,.NET Web Reference 实用程序和 BW 似乎不兼容。

于 2015-04-09T02:23:33.317 回答