2010-11-23 20 views
5

cómo agrego IncludeExceptionDetailInFaults = true; al siguiente código Necesito obtener los detalles de la excepción FaultException lanzada por el servicio web. Actualmente no recibo ningún detalle. Parece que lo único que recibo es el. ¿algunas ideas?Cómo agregar WCF IncludeExceptionDetailInFaults a comportamientos de punto final?

código C#

CustomBinding Binding = new CustomBinding(BINDING_NAME); 

EndpointAddress EndPoint = new EndpointAddress(WsEndpoint); 

// Trust all certificates 
ServicePointManager.ServerCertificateValidationCallback = ((Sender, certificate, chain, sslPolicyErrors) => true); 

_WsProxy = new MyDataSoapClient(Binding, EndPoint); 

//_WsProxy.Endpoint.Behaviors.Add(????); 

_WsProxy.ChannelFactory.Credentials.UserName.UserName = "username"; 
_WsProxy.ChannelFactory.Credentials.UserName.Password = "pwd"; 
+0

Youc an't - esto es solo un ServiceBehavior del lado del servidor, realmente. ¿Qué debería incluir el cliente detalles de excepción para? Eso solo tiene sentido en el lado del servidor –

+0

; debe decirle al servidor que incluya los detalles de la excepción en el mensaje cuando se lanza un ExceptionFault. ya está configurado en el servidor para devolver ExceptionDetails solo cuando se le solicite. – Anthony

Respuesta

4

creo que tendrá que añadir un ServiceDebugBehavior.

ServiceHost host = new ServiceHost(typeof(MyService), new Uri("http://localhost:6598/")); 
host.AddServiceEndpoint(typeof(IMyService), new BasicHttpBinding(), "MyService"); 
host.Description.Behaviors.Remove(typeof(ServiceDebugBehavior)); 
host.Description.Behaviors.Add(new ServiceDebugBehavior() { IncludeExceptionDetailInFaults = true }); 
host.Open(); 
+0

Intenté que antes de publicarlo esperaba IEndpointBehavior La mejor coincidencia de método sobrecargado para 'System.Collections.ObjectModel.Collection .Add (System.ServiceModel.Description.IEndpointBehavior)' tiene algunos argumentos inválidos – Anthony

+0

¿Dónde estableces este comportamiento? En el lado del cliente? –

+0

pensé que solo se puede usar en un servicio utilizando BasicHttpBinding. Estoy usando CustomBinding en mi aplicación. básicamente utilicé el svcutil para crear el espacio de nombres y la clase del wsdl. luego utilizo el objeto CustomBinding y las configuraciones de acuerdo a lo que se configuró desde el comando svcutil. cualquier pensamiento, ¿aún puedo usar tu método? – Anthony

Cuestiones relacionadas