Ejemplo n.º 1
0
 public void ProvideFault(
     Exception error,
     MessageVersion version,
     ref Message fault)
 {
     //TODO Mono error handling
     var wfe = error as WebFaultException<string>;
     var fe = error as FaultException;
     if (wfe != null && wfe.StatusCode != HttpStatusCode.InternalServerError)
         ErrorLogger.Trace(() => wfe.Detail);
     else if (fe != null)
         ErrorLogger.Trace(() => fe.Message);
     else
         ErrorLogger.Error(error.GetDetailedExplanation());
 }
Ejemplo n.º 2
0
 public void ProvideFault(
     Exception error,
     MessageVersion version,
     ref Message fault)
 {
     var uae = error as UnauthorizedAccessException;
     var se = error as SecurityException;
     var fe = error as FaultException;
     var anse = error as ActionNotSupportedException;
     if (uae != null)
     {
         TraceSource.TraceEvent(TraceEventType.Verbose, 5501, uae.Message);
         if (fault == null)
         {
             fault = CreateError(version, uae.Message, HttpStatusCode.Unauthorized);
             var prop = (HttpResponseMessageProperty)fault.Properties[HttpResponseMessageProperty.Name];
             prop.Headers.Add("WWW-Authenticate", MissingBasicAuth);
         }
     }
     else if (se != null)
     {
         TraceSource.TraceEvent(TraceEventType.Verbose, 5502, se.Message);
         if (fault == null)
             fault = CreateError(version, se.Message, HttpStatusCode.Forbidden);
     }
     else if (fe != null)
     {
         TraceSource.TraceEvent(TraceEventType.Verbose, 5503, fe.Message);
         if (fault == null)
             fault = CreateError(version, fe.Message, HttpStatusCode.BadRequest);
     }
     else if (anse != null)
     {
         TraceSource.TraceEvent(TraceEventType.Verbose, 5503, anse.Message);
         if (fault == null)
             fault = CreateError(version, anse.Message, HttpStatusCode.NotFound);
     }
     else
     {
         TraceSource.TraceEvent(TraceEventType.Error, 5504, error.GetDetailedExplanation());
         if (fault == null)
             fault = CreateError(version, error.Message, HttpStatusCode.InternalServerError);
     }
 }