Получение ошибки FaultException после публикации WCF
Я разработал службу WCF для своего приложения для настольных компьютеров и разместил его на сервере 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, тогда я также не могу увидеть фактическую ошибку.
1 ответ
Вы можете попытаться включить информацию об исключении в ошибку. Если для параметра 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>