private void OnBeginRequest(object sender, EventArgs e) { HttpApplication httpApplication = (HttpApplication)sender; HttpContext httpContext = httpApplication.Context; Diagnostics.SendWatsonReportOnUnhandledException(delegate() { LatencyTracker latencyTracker = new LatencyTracker(); latencyTracker.StartTracking(LatencyTrackerKey.ProxyModuleLatency, false); AspNetHelper.AddTimestampHeaderIfNecessary(httpContext.Request.Headers, "X-FrontEnd-Begin"); if (Microsoft.Exchange.Diagnostics.Components.HttpProxy.ExTraceGlobals.VerboseTracer.IsTraceEnabled(TraceType.DebugTrace)) { Microsoft.Exchange.Diagnostics.Components.HttpProxy.ExTraceGlobals.VerboseTracer.TraceDebug <string, Uri, int>((long)this.GetHashCode(), "[ProxyModule::OnBeginRequest]: Method {0}; Url {1}; Context {2};", httpContext.Request.HttpMethod, httpContext.Request.Url, httpContext.GetHashCode()); } if (HealthCheckResponder.Instance.IsHealthCheckRequest(httpContext)) { HealthCheckResponder.Instance.CheckHealthStateAndRespond(httpContext); return; } RequestDetailsLogger requestDetailsLogger = RequestDetailsLoggerBase <RequestDetailsLogger> .InitializeRequestLogger(); requestDetailsLogger.LogCurrentTime("BeginRequest"); httpContext.Items[Constants.TraceContextKey] = httpContext.GetHashCode(); httpContext.Items[Constants.LatencyTrackerContextKeyName] = latencyTracker; requestDetailsLogger.ActivityScope.UpdateFromMessage(httpContext.Request); requestDetailsLogger.ActivityScope.SerializeTo(httpContext.Response); RequestDetailsLoggerBase <RequestDetailsLogger> .SetCurrent(httpContext, requestDetailsLogger); httpContext.Items[typeof(ActivityScope)] = requestDetailsLogger.ActivityScope; httpContext.Items[Constants.RequestIdHttpContextKeyName] = requestDetailsLogger.ActivityScope.ActivityId; RequestDetailsLoggerBase <RequestDetailsLogger> .SafeSetLogger(requestDetailsLogger, HttpProxyMetadata.Protocol, HttpProxyGlobals.ProtocolType); requestDetailsLogger.SafeLogUriData(httpContext.Request.Url); RequestDetailsLoggerBase <RequestDetailsLogger> .SafeSetLogger(requestDetailsLogger, ServiceCommonMetadata.HttpMethod, httpContext.Request.HttpMethod); string requestCorrelationId = AspNetHelper.GetRequestCorrelationId(httpContext); RequestDetailsLoggerBase <RequestDetailsLogger> .SafeAppendGenericInfo(requestDetailsLogger, "CorrelationID", requestCorrelationId); httpContext.Response.AppendToLog(Constants.CorrelationIdKeyForIISLogs + requestCorrelationId + ";"); string cookieValueAndSetIfNull = ClientIdCookie.GetCookieValueAndSetIfNull(httpContext); httpContext.Response.AppendToLog(string.Format("&{0}={1}", "ClientId", cookieValueAndSetIfNull)); UrlUtilities.SaveOriginalRequestHostSchemePortToContext(httpContext); try { this.OnBeginRequestInternal(httpApplication); } catch (Exception ex) { RequestDetailsLoggerBase <RequestDetailsLogger> .SafeAppendGenericError(requestDetailsLogger, "OnBeginRequestInternal", ex.ToString()); requestDetailsLogger.AsyncCommit(false); throw; } }, new Diagnostics.LastChanceExceptionHandler(RequestDetailsLogger.LastChanceExceptionHandler)); }
// Token: 0x060005FA RID: 1530 RVA: 0x00021B74 File Offset: 0x0001FD74 private void OnPreSendRequestHeaders(object sender, EventArgs e) { HttpApplication httpApplication = (HttpApplication)sender; HttpContext httpContext = httpApplication.Context; CheckpointTracker.GetOrCreate(httpContext.Items).Add(FrontEndHttpProxyCheckpoints.ProxyModulePreSendRequestHeaders); Diagnostics.SendWatsonReportOnUnhandledException(delegate() { if (httpContext != null && httpContext.Response != null && httpContext.Response.Headers != null) { AspNetHelper.AddTimestampHeaderIfNecessary(httpContext.Response.Headers, "X-FrontEnd-End"); RequestDetailsLogger current = RequestDetailsLoggerBase <RequestDetailsLogger> .GetCurrent(httpContext); if (current != null && !current.IsDisposed) { this.SetResponseHeaders(current, httpContext); } if (Extensions.IsProbeRequest(Extensions.GetHttpRequestBase(httpContext.Request)) && !RequestFailureContext.IsSetInResponse(SharedHttpContextWrapper.GetWrapper(httpContext).Response)) { RequestFailureContext requestFailureContext = null; if (httpContext.Items.Contains(RequestFailureContext.HttpContextKeyName)) { requestFailureContext = (RequestFailureContext)httpContext.Items[RequestFailureContext.HttpContextKeyName]; } else if (httpContext.Response.StatusCode >= 400 && httpContext.Response.StatusCode < 600) { LiveIdAuthResult?liveIdAuthResult = null; LiveIdAuthResult value; if (httpContext.Items.Contains("LiveIdBasicAuthResult") && Enum.TryParse <LiveIdAuthResult>((string)httpContext.Items["LiveIdBasicAuthResult"], true, out value)) { liveIdAuthResult = new LiveIdAuthResult?(value); } requestFailureContext = new RequestFailureContext(1, httpContext.Response.StatusCode, httpContext.Response.StatusDescription, string.Empty, null, null, liveIdAuthResult); } if (requestFailureContext != null) { requestFailureContext.UpdateResponse(SharedHttpContextWrapper.GetWrapper(httpContext).Response); } } ProxyRequestHandler proxyRequestHandler = httpContext.CurrentHandler as ProxyRequestHandler; if (proxyRequestHandler != null) { proxyRequestHandler.ResponseHeadersSent = true; } } }, new Diagnostics.LastChanceExceptionHandler(RequestDetailsLogger.LastChanceExceptionHandler)); }