private FreeBusyQueryResult HandleException(EmailAddress emailAddress, AvailabilityException e) { CalendarQuery.CalendarViewTracer.TraceError <object, AvailabilityException>((long)this.GetHashCode(), "{0}: Exception getting Calendar Data: {1}", TraceContext.Get(), e); Globals.AvailabilityLogger.LogEvent(InfoWorkerEventLogConstants.Tuple_CalendarQueryFailed, null, new object[] { Globals.ProcessId, emailAddress, e }); PerformanceCounters.IntraSiteCalendarFailuresPerSecond.Increment(); return(new FreeBusyQueryResult(e)); }
public List <string> GetFailedQueryLogData() { List <string> list = new List <string>(this.failedQueries.Count); foreach (KeyValuePair <string, List <FreeBusyQuery> > keyValuePair in this.failedQueries) { string key = keyValuePair.Key; List <FreeBusyQuery> value = keyValuePair.Value; StringBuilder stringBuilder = new StringBuilder(1024); stringBuilder.AppendFormat("{0}-{1}|", "Target", key); foreach (KeyValuePair <string, string> keyValuePair2 in value[0].LogData) { stringBuilder.AppendFormat("{0}-{1}|", keyValuePair2.Key, keyValuePair2.Value); } if (value[0].Type != null) { stringBuilder.AppendFormat("{0}-{1}|{2}-{3}|", new object[] { "QT", value[0].Type.Value, "Cnt", value.Count }); } else { stringBuilder.AppendFormat("{0}-{1}|", "Cnt", value.Count); } HashSet <Type> hashSet = new HashSet <Type>(); foreach (FreeBusyQuery freeBusyQuery in value) { Exception exceptionInfo = freeBusyQuery.Result.ExceptionInfo; Exception ex = exceptionInfo; WebException ex2 = exceptionInfo as WebException; while (ex.InnerException != null) { ex = ex.InnerException; if (ex2 == null) { ex2 = (ex as WebException); } } if (!hashSet.Contains(ex.GetType())) { stringBuilder.Append("["); AvailabilityException ex3 = exceptionInfo as AvailabilityException; if (ex3 != null) { stringBuilder.AppendFormat("{0}-{1}|", "EXPS", ex3.ServerName); if (!string.IsNullOrEmpty(ex3.LocationIdentifier)) { stringBuilder.AppendFormat("{0}-{1}|", "LID", ex3.LocationIdentifier); } } if (freeBusyQuery.Email != null) { stringBuilder.AppendFormat("{0}-{1}|", "AT", freeBusyQuery.Email.Address); } stringBuilder.AppendFormat("{0}-{1}|", "EXPM", exceptionInfo.GetType().Name + ":" + exceptionInfo.Message); if (exceptionInfo.GetType() != ex.GetType()) { stringBuilder.AppendFormat("{0}-{1}|", "IEXPM", ex.GetType().Name + ":" + ex.Message); } hashSet.Add(ex.GetType()); if (ex2 != null) { HttpWebResponse httpWebResponse = ex2.Response as HttpWebResponse; if (httpWebResponse != null) { string text = httpWebResponse.Headers.Get(MSDiagnosticsHeader.HeaderName); if (text != null) { stringBuilder.AppendFormat("{0}-{1}|", "DI", text); } string text2 = httpWebResponse.Headers.Get("request-id"); if (text2 != null) { string text3 = httpWebResponse.Headers.Get(WellKnownHeader.XFEServer); string text4 = httpWebResponse.Headers.Get(WellKnownHeader.XCalculatedBETarget); stringBuilder.AppendFormat("{0}-{1}|{2}-{3}|{4}-{5}", new object[] { "RID", text2, "TFE", text3, "TBE", text4 }); } } } stringBuilder.Append(QueryLogData.GetIntraForestLatency(freeBusyQuery)); stringBuilder.Append(']'); } } list.Add(stringBuilder.ToString()); } return(list); }