Несовместимость InfoPath 2007 WebServiceConnection и WCF - PullRequest
0 голосов
/ 07 марта 2011

Я пытаюсь опубликовать данные из InfoPath, используя WebServiceConnection, в службу WFC внутри AppFabric. Мессги никогда не появляются в AppFabric, и я думаю, что знаю почему. Мой сервис WCF настроен так

<endpoint address="Workflow1.xamlx" binding="basicHttpBinding" contract="WorkflowOperation" />

И когда он вызывается тестовым клиентом WCF, он генерирует заголовок

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

Однако InfoPath не генерирует этот заголовок Soap, он только генерирует заголовок HTTP

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

Как настроить конечную точку WCF так, чтобы ей требовалось только действие HTTP-заголовка, а не действие Soap?

1 Ответ

0 голосов
/ 06 апреля 2011

Ну, я снова вернулся с ответом для всех, кто заинтересован в том, чтобы InfoPath отправлял данные в службу AppFabric.

.NET BasicHttpBinding использует комбинацию Soap1.2 + WSAddressing1.0 - в то время как клиент InfoPath будет ТОЛЬКО отправлять данные веб-сервисам, использующим Soap1.1 (без поддержки WSAddressing), - что делает их полностью несовместимыми.Я фактически закончил тем, что мне пришлось написать посредника, который бы адаптировал вызовы.

Большое спасибо " codemeit " за очень описательную страницу композиции различных типов привязки WCF.

...