c# - WCF 消息 :How to remove the SOAP Header element?

标签 c# .net wcf soap wcf-binding

我尝试从 WCF 消息中删除整个 SOAP header ,只想保留信封正文。任何人都可以告诉我如何做到这一点?

像这样创建一个 WCF 消息:

**string response = "Hello World!";
Message msg = Message.CreateMessage(MessageVersion.Soap11, "*", new TextBodyWriter(response));
msg.Headers.Clear();**

发送的 SOAP 消息将是:

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header />
  <s:Body>
    <Binary>Hello World!</Binary>
  </s:Body>
</s:Envelope>

但我不需要 SOAP header 元素,我只需要信封主体。如何从 WCF 消息中删除 header 元素?

最佳答案

选项 1:使用 bacicHttpBinding,它不会向 header 添加内容(当未配置安全时)

选项 2:实现自定义消息编码器并去除那里的 header 。在此之前的任何地方,wcf 都有可能将 header 添加回去。参见 sample encoder here .

关于c# - WCF 消息 :How to remove the SOAP Header element?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11211924/

相关文章:

c# - TPL 数据流和控制台应用程序不会终止应用程序

c# - 将 List<int> 添加到 mysql 参数

c# - 可空类型存储在内存中的什么位置?

c# - 我应该关闭 WCF REST 服务中的流吗?

silverlight - 保持模型和ViewModel同步的最佳实践

c# - 如果实例表示泛型参数,Type.Namespace 何时返回 null

c# - AuthenticationParameters 和 AcquireToken 出现错误

c# - 使用来自 WCF 客户端的非 wcf SOAP 错误(已定义 soap 错误)

c# - Toolstripbutton 不验证文本框

c# - System.Linq.Enumerable.WhereListIterator 和 System.Linq.Enumerable.WhereSelectListIterator 之间有什么区别?