Отправка данных в службу WCF с помощью WebMessageBodyStyle.Wrapped - PullRequest
0 голосов
/ 11 октября 2018

У моего клиента есть древняя служба WCF, с которой я пытаюсь работать.Я могу выполнять запросы GET без проблем, но когда я пытаюсь POST-данные, они всегда терпят неудачу.

Метод, на который я пытаюсь опубликовать, определяется следующим образом:

[OperationContract]
[WebInvoke(Method = "POST", BodyStyle = WebMessageBodyStyle.Wrapped)]
DataSet SendExpense(string pDriver, string pPassword, string pTruck, Expense expense);

с помощьюПочтальон, я пытаюсь опубликовать эти данные в теле:

<SendExpense xmlns="http://tempuri.org/" xmlns:xsd="http://www.w3.org/2001/XMLSchema" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
<pDriver>test</pDriver>
<pPassword>1234</pPassword>
<pTruck>206</pTruck>
<expense>
  <Id>0</Id>
  <DriverID>0</DriverID>
  <ItemDate>2018-10-10T18:41:57.151623-05:00</ItemDate>
  <Type>2</Type>
  <Amount>123.45</Amount>
  <ItemDescription>This is a new expense</ItemDescription>
  <TruckNum>206</TruckNum>
  <TruckID>0</TruckID>
  <BackupReceivedInd xsi:nil="true" />
  <PaidInd>false</PaidInd>
  <PaidDate>0001-01-01T00:00:00</PaidDate>
  <ExportBatchID>0</ExportBatchID>
  <CreationDate>0001-01-01T00:00:00</CreationDate>
  <UpdatedDate>0001-01-01T00:00:00</UpdatedDate>
  <Local>true</Local>
</expense>
</SendExpense>

, однако это возвращает исключение WebServiceException.Из журналов сервера я вижу, что он выполняет метод, но не работает, потому что значения Driver, Truck и Password равны NULL.

Это очень старый, хрупкий веб-сервис, поэтому изменение кода не является жизнеспособнымвариант.

Есть что-то очевидное, что я здесь упускаю?Или есть лучший способ сделать это?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...