【问题标题】:Consuming TIBCO BusinessWorks Web Service from .NET form从 .NET 表单使用 TIBCO BusinessWorks Web 服务
【发布时间】: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


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-11-12
    • 2012-01-29
    • 1970-01-01
    • 2015-10-29
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 1970-01-01
    相关资源
    最近更新 更多