C# 在C中创建自定义绑定#

C# 在C中创建自定义绑定#,c#,asp.net,wcf,C#,Asp.net,Wcf,我一直在尝试创建一个自定义绑定来输出这种类型的头XML: <soapenv:Header> <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-

我一直在尝试创建一个自定义绑定来输出这种类型的头XML:

<soapenv:Header>
  <wsse:Security soapenv:mustUnderstand="1" xmlns:wsse="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-secext-1.0.xsd" xmlns:wsu="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-wssecurity-utility-1.0.xsd">
     <wsse:UsernameToken wsu:Id="UsernameToken-BEC9D84D8B68A3118D14543420311491">
        <wsse:Username>user</wsse:Username>
        <wsse:Password Type="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-username-token-profile-1.0#PasswordText">pass</wsse:Password>
        <wsse:Nonce EncodingType="http://docs.oasis-open.org/wss/2004/01/oasis-200401-wss-soap-message-security-1.0#Base64Binary">hBcjVXk/NxiSiva5xXKphA==</wsse:Nonce>
        <wsu:Created>2016-02-01T15:53:51.146Z</wsu:Created>
     </wsse:UsernameToken>
  </wsse:Security>
然而,我一直收到一条信息,说明:

无法处理该消息。这很可能是因为操作不正确,或者是因为消息包含无效或过期的安全上下文令牌,或者是因为绑定之间不匹配


我很确定这与我的custombinding有关,但我很难弄清楚什么属性需要设置为什么。感谢您的指导

我认为客户端时间和服务器时间不匹配,至少错误看起来是这样的

你能检查一下你的计时器吗


如果我是对的,请看以下内容:

您的绑定看起来很像正在工作的自定义绑定-尽管我使用了BinaryMessageEncoding。。这将值得一次tryThanks-new错误消息:
响应消息的内容类型text/html与绑定的内容类型(application/soap+msbin1)不匹配。如果使用自定义编码器,请确保正确实现IsContentTypeSupported方法
当您在vs中加载引用时,会有人问您希望如何处理各种集合-我想知道这是否是为您所做的。。。谈到这个错误,问题是——当我使用wshttp绑定时,它几乎创建了我所需要的XML,除了头部分中的4或5个额外节点。在我的研究之后,我被告知要创建一个自定义绑定,但我的分歧在于如何创建一个自定义绑定,该绑定模仿wshttp绑定,但我不想展示的节点除外有时向导们自己会对自己的魔力感到惊讶。(这是关于XAML技术的概述):-)
        var customBinding= new CustomBinding();

        var securityBindingElement = SecurityBindingElement.CreateUserNameOverTransportBindingElement();
        securityBindingElement.IncludeTimestamp = false;
        customBinding.Elements.Add(securityBindingElement);
        customBinding.Elements.Add(new TextMessageEncodingBindingElement());

        var transportElement = new HttpsTransportBindingElement();

        customBinding.Elements.Add(transportElement);