【问题标题】:Send information in Soap Header to WCF service in C#将 Soap Header 中的信息发送到 C# 中的 WCF 服务
【发布时间】:2010-09-17 09:22:56
【问题描述】:

我希望 Web 应用程序创建对我的 WCF 服务的服务引用,将信息插入到 soap 调用的标头并调用我的 WCF 方法。

我阅读了 MessageContract 属性并在接口文件中声明了一个:

[MessageContract]
public class BasicServiceHeader
{
    [MessageHeader]
    public string myString;
}

我的 WCf 界面是:

   [ServiceContract]
public interface IBasicService
{

    [OperationContract]       
    [WebGet(UriTemplate = "GetData?value={value}")]     // Add support for HTTP GET Requests
    string GetData(int value);}

我不想将 BasicServiceHeader 作为 GetData 函数的参数传递,我想保持函数原样并在函数中提取 BasicServiceHeader,我可以这样做吗?

【问题讨论】:

    标签: wcf soap header messagecontract


    【解决方案1】:

    客户端,您可以在调用操作之前传递一个标头:

    MessageHeader messageHeader = MessageHeader.CreateHeader(_headerName, _headersNameSpace, _headerValue);
    OperationContext.Current.OutgoingMessageHeaders.Add(messageHeader);
    

    并使用 FindHeader 服务端提取它

    【讨论】:

    • 谢谢,但我认为我的客户没有 Framework 3.5。他以“asmx 方式”工作,我的客户如何在 Framework 2.0 中的 soap 方法调用中添加新的标头信息?
    • 啊,好的,这有帮助吗? blogs.msdn.com/b/kaevans/archive/2007/08/06/…
    • 在我进入 Soapextensions 这似乎是一个非常复杂的主题之前,你能告诉我 WCF 是否支持 SoapHeader 属性吗?我找到了一个使用 SoapHeader 的简单示例:msdn.microsoft.com/en-us/library/…,但我无法让它工作。
    • 我不这么认为,但它支持我之前写的方法(使用 OutgoingMessageHeaders 属性)
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多