void IWcfTelemetryModule.OnBeginRequest(IOperationContext operation) { if (operation == null) { throw new ArgumentNullException("operation"); } if (telemetryClient == null) { return; } RequestTelemetry telemetry = operation.Request; telemetry.Start(); telemetry.Url = operation.EndpointUri; telemetry.Name = operation.OperationName; var httpHeaders = operation.GetHttpRequestHeaders(); if (httpHeaders != null) { telemetry.HttpMethod = httpHeaders.Method; if (operation.ToHeader != null) { // overwrite it for WebHttpBinding requests telemetry.Url = operation.ToHeader; } } }
private void UpdateUserAgent(IOperationContext operation, UserContext userContext) { var contextState = (IOperationContextState)operation; String knownAgent = null; if (contextState.TryGetState(UserAgent, out knownAgent)) { userContext.Id = knownAgent; return; } var httpHeaders = operation.GetHttpRequestHeaders(); if (httpHeaders != null) { var userAgent = httpHeaders.Headers["User-Agent"]; if (!String.IsNullOrEmpty(userAgent)) { userContext.UserAgent = userAgent; } } // we store this here (even if it's null), to avoid // having to check the message headers later on // when it might no longer be available. contextState.SetState(UserAgent, userContext.UserAgent ?? ""); }
/// <summary> /// Called when a telemetry item is available /// </summary> /// <param name="telemetry">The telemetry item to augment</param> /// <param name="operation">The operation context</param> protected override void OnInitialize(ITelemetry telemetry, IOperationContext operation) { var httpHeaders = operation.GetHttpRequestHeaders(); if ( httpHeaders != null ) { var userAgent = httpHeaders.Headers["User-Agent"]; if ( !String.IsNullOrEmpty(userAgent) ) { telemetry.Context.User.UserAgent = userAgent; } } }
/// <summary> /// Called when a telemetry item is available /// </summary> /// <param name="telemetry">The telemetry item to augment</param> /// <param name="operation">The operation context</param> protected override void OnInitialize(ITelemetry telemetry, IOperationContext operation) { var httpHeaders = operation.GetHttpRequestHeaders(); if (httpHeaders != null) { var userAgent = httpHeaders.Headers["User-Agent"]; if (!String.IsNullOrEmpty(userAgent)) { telemetry.Context.User.UserAgent = userAgent; } } }
private void UpdateUserAgent(IOperationContext operation, UserContext userContext) { var httpHeaders = operation.GetHttpRequestHeaders(); if (httpHeaders != null) { var userAgent = httpHeaders.Headers["User-Agent"]; if (!String.IsNullOrEmpty(userAgent)) { userContext.UserAgent = userAgent; } } }
private String GetHeader(IOperationContext context, String httpHeader, String soapHeader) { var httpHeaders = context.GetHttpRequestHeaders(); if (httpHeaders != null) { return(httpHeaders.Headers[httpHeader]); } else { return(context.GetIncomingMessageHeader <String>(soapHeader, SoapHeaderNamespace)); } }
private string GetHeader(IOperationContext context, string httpHeader, string soapHeader) { if (this.RequestAlreadyChecked(context)) { return(null); } var httpHeaders = context.GetHttpRequestHeaders(); if (httpHeaders != null) { return(httpHeaders.Headers[httpHeader]); } else { return(context.GetIncomingMessageHeader <string>(soapHeader, this.SoapHeaderNamespace)); } }
void IWcfTelemetryModule.OnBeginRequest(IOperationContext operation) { if (operation == null) { throw new ArgumentNullException("operation"); } if (this.telemetryClient == null) { return; } RequestTelemetry telemetry = operation.Request; // if ASP.NET has already started the request, leave the start time alone. if (operation.OwnsRequest) { telemetry.Start(); } telemetry.Url = operation.EndpointUri; telemetry.Name = operation.OperationName; telemetry.Properties["soapAction"] = operation.SoapAction; var httpHeaders = operation.GetHttpRequestHeaders(); if (httpHeaders != null) { telemetry.Properties["httpMethod"] = httpHeaders.Method; if (operation.ToHeader != null) { // overwrite it for WebHttpBinding requests telemetry.Url = operation.ToHeader; } } // run telemetry initializers here, while the request message is still open this.telemetryClient.Initialize(telemetry); }