开发者

Incompatibility between InfoPath 2007 WebServiceConnection and WCF

I am trying to post data from InfoPath using the WebServiceConnection, to a WFC service inside of AppFabric. The messgae never arrives in AppFabric, and I think I know why. My WCF service is configured like this

<endpoint address="Workflow1.xamlx" binding="basicHttpBin开发者_如何学Pythonding" contract="WorkflowOperation" />

And when it is called by WCF Test Client, it generates the header

  <s:Header>
    <a:Action s:mustUnderstand="1">http://tempuri.org/WorkflowOperation/ReceiveFormPayload</a:Action>
  </s:Header>

However, InfoPath does not generate this Soap header, it only generates the HTTP header

POST /Workflow1.xamlx HTTP/1.1
SOAPAction: "http://tempuri.org/WorkflowOperation/ReceiveFormPayload"
Content-Type: text/xml; charset="UTF-8"
User-Agent: SOAP Toolkit 3.0
Host: localhost:51842
Content-Length: 1893
Connection: Keep-Alive
Cache-Control: no-cache

How do I configure my WCF endpoint to only need the HTTP-header action, and not the Soap Action?


Well, I'm back again, with the answer for anyone who is interested in getting InfoPath to submit data to an AppFabric service.

The .NET BasicHttpBinding uses a combination of Soap1.2+WSAddressing1.0 - while the InfoPath client will ONLY submit to web services using Soap1.1 (with NO WSAddressing support) - rending the two completely incompatible. I actually ended up having to write an intermediary broker which would adapt the invocations.

Many thanks to "codemeit" for a very descriptive page of the composition of the various WCF binding types.

0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜