【问题标题】:set Response to client from SOAP Envelope从 SOAP 信封设置对客户端的响应
【发布时间】:2010-09-19 13:46:01
【问题描述】:

我有一个具有拦截 SOAP 请求的自定义行为的 WCF 客户端。 在客户端的 BeforeSendRequest 中,我获取 SOAP 请求并将其作为参数传递给另一个 WS。另一个 WS 将 SOAP 信封发送到客户端想要调用的真实服务,并将 SOAP 响应返回给客户端。 因此,在 BeforeSendRequest 中,中间服务将真正的 SOAP 响应作为字符串返回给客户端。

public object BeforeSendRequest(ref System.ServiceModel.Channels.Message request, IClientChannel channel)
{
  string soapResponse = myotherProxy.CallService(request.ToString());
  return null;
}

如何将返回的 SOAP 响应 (soapResponse) 设置为客户端中的真实响应?

希望有人可以提供帮助:)

谢谢你, 阿德里亚

【问题讨论】:

    标签: c# wcf soap


    【解决方案1】:

    您可以将“soapResponse”保存到检查器的成员变量中,然后在 afterReceiveReply 中重新设置。

    但是你为什么要伪造对服务的调用呢?你不能直接打电话给其他服务吗 并且不用做检查员的诡计?

    【讨论】:

    • 谢谢 :) 但是如何设置这个 SOAPEnvelope 作为字符串作为回复,它是一个消息?我必须这样做,因为这就是项目......(在不同的服务中从不同的客户端发送消息,但在 myotherProxy.CallService 发送之前,它会进行一些检查,并且只有在检查正常时才允许调用)
    • 你能让你的 CallService 方法返回一个 SOAP 消息吗?或者您可以尝试从肥皂串中提取信息。 (见msdn.microsoft.com/en-us/library/…
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-11-20
    • 2015-02-25
    • 1970-01-01
    • 2019-05-29
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多