También recibí el mismo error, el WCF funcionaba correctamente para mí cuando lo estaba usando en el entorno de desarrollo con mis credenciales, pero cuando alguien más lo estaba usando en TEST, arrojaba el mismo error. Investigué mucho y luego, en lugar de hacer actualizaciones de configuración, manejé una excepción en el método WCF con la ayuda de la excepción de falla. Además, la identidad para WCF debe establecerse con las mismas credenciales que tienen acceso a la base de datos, alguien podría haber cambiado su autoridad. A continuación encontrará el código para el mismo:
[ServiceContract]
public interface IService1
{
[OperationContract]
[FaultContract(typeof(ServiceData))]
ForDataset GetCCDBdata();
[OperationContract]
[FaultContract(typeof(ServiceData))]
string GetCCDBdataasXMLstring();
//[OperationContract]
//string GetData(int value);
//[OperationContract]
//CompositeType GetDataUsingDataContract(CompositeType composite);
// TODO: Add your service operations here
}
[DataContract]
public class ServiceData
{
[DataMember]
public bool Result { get; set; }
[DataMember]
public string ErrorMessage { get; set; }
[DataMember]
public string ErrorDetails { get; set; }
}
en su service1.svc.cs puede usar esto en el bloque catch:
catch (Exception ex)
{
myServiceData.Result = false;
myServiceData.ErrorMessage = "unforeseen error occured. Please try later.";
myServiceData.ErrorDetails = ex.ToString();
throw new FaultException<ServiceData>(myServiceData, ex.ToString());
}
Y use esto en la aplicación Cliente como el siguiente código:
ConsoleApplicationWCFClient.CCDB_HIG_service.ForDataset ds = obj.GetCCDBdata();
string str = obj.GetCCDBdataasXMLstring();
}
catch (FaultException<ConsoleApplicationWCFClient.CCDB_HIG_service.ServiceData> Fex)
{
Console.WriteLine("ErrorMessage::" + Fex.Detail.ErrorMessage + Environment.NewLine);
Console.WriteLine("ErrorDetails::" + Environment.NewLine + Fex.Detail.ErrorDetails);
Console.ReadLine();
}
Simplemente intente esto, seguramente ayudará a obtener el problema exacto.