Получение ошибки FaultException после публикации WCF

Я разработал службу WCF для одного из настольных приложений и разместил их на сервере Azure с БД.

Я только что подключил URL-адрес службы WCF к своему локальному настольному приложению.

Однажды я вызвал метод входа в систему из приложения. тогда нет проблем.

Как только я вызвал свой второй метод, я всегда получал ошибку FaultException

Ошибка похожа на то, что см. внутреннее исключение для подробной ошибки. но как только я войду внутрь, внутреннее исключение будет нулевым.

Я также поместил <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> в свой wcf web.config

Как только я подключаю локальный WCF с live db к своему настольному приложению, все работает нормально.

Как только я подключаю Live WCF с live db к своему настольному приложению, не работает вставка и обновление данных.

мой второй метод с этим кодом.

 public class Service1 : IService1
    {
     public void method1(int nm_Id, string f_LoginStatus)
            {
                class1 lo_class = new class1();

                    DateTime dt = DateTime.UtcNow;
                    //check records exist or not
                        lo_class.dt_date = dt;
                        lo_class.dtCreatedOn = dt;
                        lo_tblAttendance.dtUpdatedOn = dt;

                        _context.tblAttendances.Add(lo_tblAttendance);

                        Save();
                    }
           }
    }

 [ServiceContract]
    public interface IService1
    {
        [OperationContract]
        [FaultContract(typeof(InitializationFault))]
        void method1(int nm_Id, string f_LoginStatus);
     }


   [DataContract]
    public class InitializationFault
    {
        public InitializationFault(Exception exc, string msg)
        {
            Exception = exc;
            Message = msg;
        }

        [DataMember]
        public Exception Exception { get; set; }

        [DataMember]
        public string Message { get; set; }
    }

Вызов вышеуказанного метода из настольного приложения:

  lo_loginServices = new MyService.Service1Client();
  try
                    {
                        lo_loginServices.method1(lo_EmpId, "In"); // getting inner exception error here
                    }
                    catch (FaultException<InitializationFault> ex)
                    {
                        Console.WriteLine("FaultException<InitializationFault>: " + ex.Detail);
                        //more
                    }

Я пишу раздел catch, а затем не могу увидеть реальную ошибку.


person Jatin Gadhiya    schedule 31.12.2015    source источник


Ответы (1)


Вы можете попытаться включить сведения об исключении в Fault. Настройка IncludeExceptionDetailInFaults в true, чтобы разрешить передачу информации об исключениях клиентам в целях отладки.

Прочтите здесь

<configuration>  
<system.serviceModel>  
  <services>  
    <!-- Step 1. Add a behaviorConfiguration attribute --> 
    <service  
      name="Microsoft.WCF.Documentation.SampleService"  
      behaviorConfiguration="metadataAndDebug">  
      <host>  
        <baseAddresses>  
          <add baseAddress="http://localhost:8080/SampleService" />  
        </baseAddresses>  
      </host>  
      <endpoint  
         address="mex"  
         binding="mexHttpBinding"  
         contract="IMetadataExchange"  
      />  
    </service>  
  </services>  
  <behaviors>  
    <serviceBehaviors>  
      <!-- Step 2. Add a new behavior below.-->
      <behavior name="metadataAndDebug">  
        <serviceMetadata  httpGetEnabled="true" httpGetUrl=""/>  
      <!-- Step 3. Add a <serviceDebug> element -->
    <serviceDebug httpHelpPageEnabled="true" includeExceptionDetailInFaults="true" />  
      </behavior>  
    </serviceBehaviors>  
  </behaviors>  
</system.serviceModel>  
</configuration>
person Abhinav Galodha    schedule 31.12.2015