0

我已经为我的桌面应用程序之一开发了 WCF 服务,并使用 DB 托管到 Azure 服务器中。

我刚刚在我的本地桌面应用程序上连接了 WCF 服务 URL。

一旦我从应用程序调用登录方法。那么没有问题。

一旦我调用了我的第二种方法,我总是得到 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 部分然后我也看不到实际的错误。

4

1 回答 1

0

您可以尝试在故障中包含异常详细信息。将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>
于 2015-12-31T18:17:29.300 回答