【问题标题】:Send an empty response from WCF service从 WCF 服务发送空响应
【发布时间】:2020-07-08 11:24:01
【问题描述】:

我正在开发由第三方调用的 WCF 服务。他们要求 WCF 服务应该发送一个带有 HTTP 状态代码 200 的空响应。我有一个 void 方法,响应包含带有空正文的 SOAP 信封。但他们说响应应该是空白的。我尝试制作 OneWay 服务,但状态码是 202 而不是 200。有没有办法实现这一点?

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/" xmlns:u="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
    <s:Header>
        <o:Security s:mustUnderstand="1" xmlns:o="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd">
            <u:Timestamp u:Id="_0">
                <u:Created>2020-07-02T16:07:55.708Z</u:Created>
                <u:Expires>2020-07-02T16:12:55.708Z</u:Expires>
            </u:Timestamp>
        </o:Security>
    </s:Header>
    <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"/>
</s:Envelope>

【问题讨论】:

  • 空响应是什么意思? SOAP 消息中是否没有肥皂消息或没有内容。我认为 IDispatchMessageInspector 接口应该能够为您提供帮助。 IDispatchMessageInspector 可以处理要发送的消息。
  • 没有肥皂信息。我实现了 IDispatchMessageInspector 接口。当回复设置为空时,我可以在没有肥皂信封的情况下实现空白响应。然而,随着这一变化,HTTP 状态代码更改为 202。客户端需要 200 状态代码。
  • 据我所知,我们不能将reply设置为null,因为客户端会检查接收到的SOAP消息的结构,也许你可以考虑使用webhttpbinding。

标签: wcf


【解决方案1】:

考虑到您说您已经解决了空消息问题并且您正在处理响应时的 HTTP 状态,也许这个答案:How can I return a custom HTTP status code from a WCF REST method? 可以帮助您

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2019-03-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多