Неверный формат пакета, вызов службы SAP из C # с файлом WSDL - PullRequest
0 голосов
/ 29 августа 2018

Я пытаюсь вызвать службу, используя предоставленный мне файл WSDL. Я получаю ошибку «Неожиданный формат пакета». Я проверил сервис с использованием SOAPUI, и все работает оттуда. Когда я вызываю сервис из моего приложения на C #, я получаю сообщение об ошибке, указанное выше.

Относительная информация

  • Сервис предоставляется от SAP
  • Служба была импортирована с использованием файла .WSDL
  • Тестирование внутри консольного приложения
  • Я протестировал другие службы, предоставляемые моей группой SAP, которые работали просто отлично.

код

ZPC_DROP_DOWN_VALUESClient client = new ZPC_DROP_DOWN_VALUESClient();
client.ClientCredentials.UserName.UserName = "ERICO";
client.ClientCredentials.UserName.Password = "Password";
ZpcDropDownValues vals = new ZpcDropDownValues();
vals.Uom = "X";
ZpcDropDownValuesResponse Response = new ZpcDropDownValuesResponse();            

try
{
    Response = client.ZpcDropDownValues(vals);
}
catch (Exception ex)
{
    Console.WriteLine(ex.ToString());
}
Console.ReadKey();

Вот трассировка стека:

System.ServiceModel.EndpointNotFoundException: не было конечной точки, прослушивающей https://r3snd.yaskawa.com:8000/sap/bc/srt/rfc/sap/zpc_drop_down_values/410/zpc_drop_down_values/zpc_drop_down_values, которая могла бы принять сообщение. Это часто вызвано неправильным адресом или действием SOAP. Смотрите InnerException, если имеется, для более подробной информации. ---> System.Net.WebException: удаленное имя не может быть разрешено: 'r3snd.yaskawa.com' в System.Net.HttpWebRequest.GetRequestStream (TransportContext & context) в System.Net.HttpWebRequest.GetRequestStream () в System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream () --- Конец внутренней трассировки стека исключений ---

Трассировка стека серверов: в System.ServiceModel.Channels.HttpOutput.WebRequestHttpOutput.GetOutputStream () в System.ServiceModel.Channels.HttpOutput.Send (время ожидания TimeSpan) в System.ServiceModel.Channels.HttpChannelFactory`1.HttpRequestChannel.HttpChannelRequest.SendRequest (Сообщение сообщения, время ожидания TimeSpan) в System.ServiceModel.Channels.RequestChannel.Request (сообщение-сообщение, время ожидания TimeSpan) в System.ServiceModel.Dispatcher.RequestChannelBinder.Request (сообщение-сообщение, время ожидания TimeSpan) в System.ServiceModel.Channels.ServiceChannel.Call (строковое действие, логический односторонний режим, операция ProxyOperationRuntime, Object [] ins, Object [] outs, TimeSpan timeout) в System.ServiceModel.Channels.ServiceChannelProxy.InvokeService (метод IMethodCallMessageCall, операция ProxyOperationRuntime) в System.ServiceModel.Channels.ServiceChannelProxy.Invoke (сообщение IMessage)

Исключение переброшено в [0]: в System.Runtime.Remoting.Proxies.RealProxy.HandleReturnMessage (IMessage reqMsg, IMessage retMsg) в System.Runtime.Remoting.Proxies.RealProxy.PrivateInvoke (MessageData & msgData, тип Int32) at ServicesFromSAP.TableReference.ZPC_DROP_DOWN_VALUES.ZpcDropDownValues ​​(запрос ZpcDropDownValuesRequest) at ServicesFromSAP.TableReference.ZPC_DROP_DOWN_VALUESClient.ServicesFromSAP.TableReference.ZPC_DROP_DOWN_VALUES.ZpcDropDownValues ​​(запрос соединения ZpcDropDownValuesRequest в ServicesFromSAP.TableReference.ZPC_DROP_DOWN_VALUESClient.ZpcDropDownValues ​​(ZpcDropDownValues ​​ZpcDropDownValues1) в C: \ Users \ eric_obermuller \ source \ repos \ ServicesFromSAP \ Services \ Table \ Table.Re: Re: в ServicesFromSAP.Program.Main (String [] args) в C: \ Users \ eric_obermuller \ source \ repos \ ServicesFromSAP \ ServicesFromSAP \ Program.cs: строка 33

Я не уверен, в чем проблема. Эта услуга была предоставлена ​​мне для целей тестирования / обучения, чтобы я мог начать изучать, как пользоваться их услугами. Есть какие-то настройки, о которых я не знаю?

Любые предложения будут с благодарностью. Не уверен, нужно ли мне установить тайм-аут на большее или что-то в этом роде. Я везде искал ответ, и кажется, что это дело в каждом конкретном случае.

1 Ответ

0 голосов
/ 29 августа 2018

Хорошо, я понял проблему. Первоначально при тестировании этого приложения запрос был отправлен мне как запрос Http.

Конечная точка в App.Config

<endpoint address="http://R3SND.yaskawa.com:8000/sap/bc/srt/rfc/sap/zpc_drop_down_values/410/zpc_drop_down_values/zpc_drop_down_values"
            binding="customBinding" bindingConfiguration="ZPC_DROP_DOWN_VALUES"
            contract="TableReference.ZPC_DROP_DOWN_VALUES" name="ZPC_DROP_DOWN_VALUES" />

Когда я попробовал приложение, я получил сообщение об ошибке «Неверный URI Http, Https Ожидается». Не зная, что происходит, я изменил адрес своей конечной точки на Https вместо Http. Вот где произошла вышеуказанная ошибка.

Пока возился, я изменил его обратно на Http и понял, что ошибка выдается, потому что я использовал HttpsTransport вместо HttpTransport.

Транспорт Https

<httpsTransport authenticationScheme="Basic" />

Транспорт Http (правильный)

<httpTransport authenticationScheme="Basic" />

Я надеюсь, что это может помочь кому-то еще, потому что это сводило меня с ума!

Спасибо всем за внимание на мой вопрос.

...