2015-12-31 13 views
0

Я разработал службу WCF для своего одного настольного приложения и хоста на сервере Azure с БД.Получение ошибки FaultException после публикации WCF

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

Как только я назвал метод входа из приложения. то нет проблемы.

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

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

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

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

Как только я подключу 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 
        } 

Я записи улова раздел, то и я не могу в состоянии видеть фактические ошибки.

ответ

0

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

Читать here

<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>