我为我的一个桌面应用程序开发了WCF服务,并使用DB为Azure服务器托管。
我刚刚在本地桌面应用程序上连接WCF服务Url。
我从应用程序调用登录方法。没问题。
一旦我调用了我的第二个方法,那么我总是遇到FaultException错误
错误就像是看到细节错误的内部异常。但是一旦我进去,那么内部异常就是空的。
我还将<serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
放入我的wcf 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
}
我写了catch部分,然后我也无法看到实际的错误。
答案 0 :(得分: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>