Удаление XML-сообщения - PullRequest
0 голосов
/ 13 июня 2018

Более недели я пытаюсь создать связь между клиентским скриптом javascript (работающим на node.js) и службой WCF (SOAP).

Обмен данными осуществляется через XML, метод POST

xmlhttp.setRequestHeader('Content-Type', 'text/xml; charset=utf-8');

URL и XML, которые я отправляю службе, определены как:

soapRequest('http://winserver:8735/ReportsListsService', 
    `<?xml version="1.0" encoding="UTF-8"?><s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
    <s:Header>
      <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IReportsListsService/GetClients</Action>
    </s:Header>
    <s:Body>
      <GetClients xmlns="http://tempuri.org/" />
    </s:Body>
  </s:Envelope>`);

Это моя служба, в настоящее время пытающаяся вызвать простейший метод GetClients

using System;
using System.Collections.Generic;
using System.ServiceModel;
using System.ServiceModel.Web;
using tt4t.Dispatching.ApplicationServer.Data.CommonData;

namespace tt4t.Dispatching.ApplicationServer.Data.Reports.Lists
{
    [ServiceContract]
    public interface IReportsListsService : IMicroservice
    {
  [OperationContract]
        IEnumerable<Client> GetClients();
    }
}

Но получаюэта ошибка в консоли отладки chrome

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/"><s:Body><s:Fault><faultcode>s:Client</faultcode><faultstring xml:lang="en-US">The incoming message contains a SOAP header representing the WS-Addressing 'Action', yet the HTTP transport is configured with AddressingVersion.None.  As a result, the message is being dropped.  If this is not desired, then update your HTTP binding to support a different AddressingVersion.</faultstring></s:Fault></s:Body></s:Envelope>

Эта ошибка отвечает на эту строку моего xml-запроса

   <s:Header>
              <Action s:mustUnderstand="1" xmlns="http://schemas.microsoft.com/ws/2005/05/addressing/none">http://tempuri.org/IReportsListsService/GetClients</Action>
   </s:Header>

Полный код: здесь

1 Ответ

0 голосов
/ 13 июня 2018

Проблема отсутствовала

xmlhttp.setRequestHeader('SOAPAction', "http://tempuri.org/IReportsListsService/GetClients");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...