Xamarin WCF Rasining NotImplementedException на FaultException<TDetail> BUG

Я думаю, что я нашел ошибку в Xamarin относительно клиента WCF. Кажется, что Xamarin не нравится FaultException, которые включают элемент FaultActor. Мой сгенерированный клиент SLSVCUTIL находится в PCL (профиль 78). Ссылка на этот PCL является проектом IOS. Wsdl представленного веб-сервиса моего поставщика выставляет пользовательский сбой. Когда веб-служба выдает ошибку, не возникает ошибочное исключение, но, что интересно, возникает исключение "не реализовано".

Еще пара заметок:

  1. При обращении к PCL в обычном консольном приложении я могу перехватить FaultException и прочитать подробности.

  2. При создании моего собственного WCF и возникновении идентичной ошибки приложение IOS может это уловить! Единственное отличие, которое я вижу в ответе Fault, - это отсутствие в реализации службы WCF.

    Ниже приведены 2 ответа.

Открытая веб-служба WCF-> Это работает как в консоли, так и в приложении Xamarin IOS

<s:Envelope xmlns:s="http://schemas.xmlsoap.org/soap/envelope/">
   <s:Body>
      <s:Fault>
         <faultcode>s:Client</faultcode>
         <faultstring xml:lang="en-US">The creator of this fault did not specify a Reason.</faultstring>
         <detail>
            <ECFPFault xmlns="http://RamiCorpSolutions/BusinessObjects" xmlns:i="http://www.w3.org/2001/XMLSchema-instance">
               <ErrorCode>PASSWORDEXPIRED</ErrorCode>
               <ErrorMsg>Unknown LoginName</ErrorMsg>
            </ECFPFault>
         </detail>
      </s:Fault>
   </s:Body>
</s:Envelope>

Ответ веб-службы, предоставляемый поставщиком-> Это работает в консольном приложении. Не работает в Xamarin IOS.

  <SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/">
   <SOAP-ENV:Body>
      <SOAP-ENV:Fault>
         <faultcode>SOAP-ENV:Server</faultcode>
         <faultstring>This is an operation implementation generated fault</faultstring>
         <faultactor/>
         <detail>
            <ns:ECFPFault xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:ns="http://RamiCorpSolutions/BusinessObjects">
               <ns:ErrorCode>PASSWORDEXPIRED</ns:ErrorCode>
               <ns:ErrorMsg>Unknown LoginName</ns:ErrorMsg>
            </ns:ECFPFault>
         </detail>
      </SOAP-ENV:Fault>
   </SOAP-ENV:Body>
</SOAP-ENV:Envelope>

Некоторая информация о трассировке стека: Stack Trace " at (управляемая оболочкой-на-родной) System.Object:__icall_wrapper_mono_delegate_end_invoke (object,intptr)\n at (делегат-конечный вызов оболочки):end_invoke_object__this___object[]&_ System (). IAsync IAsyncResult)\n в System.ServiceModel.MonoInternal.ClientRuntimeChannel.EndProcess (метод System.Reflection.MethodBase, параметры System.String operationName, System.Object[], результат IAsyncResult) [0x00025] в /Users/builder/data 3412/3cf8aaed/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System.ServiceModel/System.ServiceModel/ClientRuntimeChannel.cs:460 \n в системе. ServiceModel.ClientBase1+ChannelBase1 [TChannel, T].EndInvoke (имя метода System.String, аргументы System.Object [], результат IAsyncResult) [0x0003c] в /Users/builder/data/lanes/3412/3cf8aaed/source/maccore/_build/Library/Frameworks/Xamarin.iOS. ] в /Users/ramiayyad/ Документы /RDC Connections/Bonobo.Git.Server/ECFP.git/ECFPLib/ Сервис Ссылка /ECFPService/Reference.cs:2778 \ п в ECFPLib.ECFPService.ECFPServiceClient.ECFPLib.ECFPService.IECFPService.EndLogin (Результат IAsyncResult) [0x00008] в /Users/ramiayyad/Documents/RDC Connections/Bonobo.Git.Server/ECFP.git/ECFPLib/ Ссылки на службы /ECFPService/Reference.cs:1939 \n в ECFPLib.ECFPService.ECFPServiceCliogin (Результат IAsyncResult) [0x00003] в /Users/ramiayyad/Documents/RDC Connections/Bonobo.Git.Server/ECFP.git/ECFPLib/ Ссылки на службы /ECFPService/Reference.cs:1949 \n в System.ServiceModel.ClientBase`1+c__AnonStorey0[TChannel].<> M__0 (IAsyncResult ar) [0x00006] в /Users/builder/data/lanes/3412/3cf8aaed/source/maccore/_build/Library/Frameworks/Xamarin.iOS.framework/Versions/git/src/mono/mcs/class/System.ServiceModel/System.ServiceModel/ClientBase.cs:242 "string

*** ОБНОВЛЕНИЕ **** Поднята ошибка: https://bugzilla.xamarin.com/show_bug.cgi?id=42226

Отчет об ошибке включает в себя пример проекта, который определенно показывает, что добавление простого элемента вызывает проблему. Метод является частью стандарта SOAP.

0 ответов

Другие вопросы по тегам