WCF Basichttpbinding 400错误

时间:2011-01-04 21:52:33

标签: wcf basichttpbinding

我正在使用Fiddler向我的网络服务发布肥皂请求。我在使用控制台应用程序客户端(带有服务引用代理)时从服务中捕获了请求。通过服务引用客户端的请求工作正常。但是,当我在fiddler中使用相同的请求数据时,我收到400错误的请求错误。我在fiddler中使用的请求数据如下。任何指导都会很棒!

    <s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
  <s:Header>
    <To s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://localhost:51909/Service1.svc</To>
    <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IService1/Test</Action>
  </s:Header>
  <s:Body xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema">
    <Test xmlns="http://tempuri.org/">
      <request>
        <Data xmlns="http://www.hr-xml.org/3">
          <Position>
            <DocID>1234556677</DocID>
          </Position>
        </Data>
      </request>
    </Test>
  </s:Body>
</s:Envelope>

在fiddler中使用以下内容标题

内容长度:786 内容类型:text / xml SoapAction:http://tempuri.org/Service1/Test

编辑:我发现了确切的错误,但我不确定这意味着什么。错误是寻址版本'AddressingNone(http://schemas.microsoft.com/ws/2005/05/addressing/none)'不支持添加WS-Addressing标头。有什么想法吗?

1 个答案:

答案 0 :(得分:1)

您的服务上的MessageVersion似乎未设置为接受WS-Addressing。您必须删除Soap Header“To”和“Action”或将MessageVersion设置为允许WS-Addressing。

http://msdn.microsoft.com/en-us/library/system.servicemodel.channels.messageversion.aspx

如果这没有帮助,请发布您的服务配置。