/// <summary> /// ASP.NET requests /// </summary> public override void ProcessRequest(HttpContextBase context) { var defaultUrl = HostContext.Config.ServiceEndpointsMetadataConfig.DefaultMetadataUri; if (context.Request.PathInfo == "/" || context.Request.FilePath.EndsWith("/")) { //new NotFoundHttpHandler().ProcessRequest(context); return; var relativeUrl = defaultUrl.Substring(defaultUrl.IndexOf('/')); var absoluteUrl = context.Request.Url.AbsoluteUri.TrimEnd('/') + relativeUrl; context.Response.Redirect(absoluteUrl); } else { context.Response.Redirect(defaultUrl); } context.EndHttpHandlerRequest(skipHeaders: true); }
/// <summary> /// ASP.NET requests /// </summary> /// <param name="context"></param> public override void ProcessRequest(HttpContextBase context) { var request = context.Request; var response = context.Response; if (string.IsNullOrEmpty(RelativeUrl) && string.IsNullOrEmpty(AbsoluteUrl)) throw new ArgumentException("RelativeUrl and AbsoluteUrl is Required"); if (!string.IsNullOrEmpty(AbsoluteUrl)) { response.StatusCode = (int)StatusCode; response.AddHeader(HttpHeaders.Location, this.AbsoluteUrl); } else { var absoluteUrl = request.GetApplicationUrl(); if (!string.IsNullOrEmpty(RelativeUrl)) { if (this.RelativeUrl.StartsWith("/")) absoluteUrl = absoluteUrl.CombineWith(this.RelativeUrl); else if (this.RelativeUrl.StartsWith("~/")) absoluteUrl = absoluteUrl.CombineWith(this.RelativeUrl.Replace("~/", "")); else absoluteUrl = request.Url.AbsoluteUri.CombineWith(this.RelativeUrl); } response.StatusCode = (int)StatusCode; response.AddHeader(HttpHeaders.Location, absoluteUrl); } context.EndHttpHandlerRequest(closeOutputStream: true); }
public override void ProcessRequest(HttpContextBase context) { var request = context.Request; var response = context.Response; response.ContentType = "text/plain"; response.StatusCode = 403; context.EndHttpHandlerRequest(skipClose: true, afterHeaders: r => { r.Write("Forbidden\n\n"); r.Write("\nRequest.HttpMethod: " + request.HttpMethod); r.Write("\nRequest.PathInfo: " + request.PathInfo); r.Write("\nRequest.QueryString: " + request.QueryString); if (HostContext.Config.DebugMode) { r.Write("\nRequest.RawUrl: " + request.RawUrl); if (IsIntegratedPipeline.HasValue) r.Write("\nApp.IsIntegratedPipeline: " + IsIntegratedPipeline); if (!WebHostPhysicalPath.IsNullOrEmpty()) r.Write("\nApp.WebHostPhysicalPath: " + WebHostPhysicalPath); if (!WebHostRootFileNames.IsEmpty()) r.Write("\nApp.WebHostRootFileNames: " + TypeSerializer.SerializeToString(WebHostRootFileNames)); if (!WebHostUrl.IsNullOrEmpty()) r.Write("\nApp.ApplicationBaseUrl: " + WebHostUrl); if (!DefaultRootFileName.IsNullOrEmpty()) r.Write("\nApp.DefaultRootFileName: " + DefaultRootFileName); } }); }
public override void ProcessRequest(HttpContextBase context) { var request = context.Request; var response = context.Response; var httpReq = context.ToRequest(GetType().GetOperationName()); if (!request.IsLocal) { ProcessRequestAsync(httpReq, httpReq.Response, null); return; } Log.ErrorFormat("{0} Request not found: {1}", request.UserHostAddress, request.RawUrl); var sb = new StringBuilder(); sb.AppendLine("Handler for Request not found: \n\n"); sb.AppendLine("Request.ApplicationPath: " + request.ApplicationPath); sb.AppendLine("Request.CurrentExecutionFilePath: " + request.CurrentExecutionFilePath); sb.AppendLine("Request.FilePath: " + request.FilePath); sb.AppendLine("Request.HttpMethod: " + request.HttpMethod); sb.AppendLine("Request.MapPath('~'): " + request.MapPath("~")); sb.AppendLine("Request.Path: " + request.Path); sb.AppendLine("Request.PathInfo: " + request.PathInfo); sb.AppendLine("Request.ResolvedPathInfo: " + httpReq.PathInfo); sb.AppendLine("Request.PhysicalPath: " + request.PhysicalPath); sb.AppendLine("Request.PhysicalApplicationPath: " + request.PhysicalApplicationPath); sb.AppendLine("Request.QueryString: " + request.QueryString); sb.AppendLine("Request.RawUrl: " + request.RawUrl); try { sb.AppendLine("Request.Url.AbsoluteUri: " + request.Url.AbsoluteUri); sb.AppendLine("Request.Url.AbsolutePath: " + request.Url.AbsolutePath); sb.AppendLine("Request.Url.Fragment: " + request.Url.Fragment); sb.AppendLine("Request.Url.Host: " + request.Url.Host); sb.AppendLine("Request.Url.LocalPath: " + request.Url.LocalPath); sb.AppendLine("Request.Url.Port: " + request.Url.Port); sb.AppendLine("Request.Url.Query: " + request.Url.Query); sb.AppendLine("Request.Url.Scheme: " + request.Url.Scheme); sb.AppendLine("Request.Url.Segments: " + request.Url.Segments); } catch (Exception ex) { sb.AppendLine("Request.Url ERROR: " + ex.Message); } if (IsIntegratedPipeline.HasValue) sb.AppendLine("App.IsIntegratedPipeline: " + IsIntegratedPipeline); if (!WebHostPhysicalPath.IsNullOrEmpty()) sb.AppendLine("App.WebHostPhysicalPath: " + WebHostPhysicalPath); if (!WebHostRootFileNames.IsEmpty()) sb.AppendLine("App.WebHostRootFileNames: " + TypeSerializer.SerializeToString(WebHostRootFileNames)); if (!WebHostUrl.IsNullOrEmpty()) sb.AppendLine("App.ApplicationBaseUrl: " + WebHostUrl); if (!DefaultRootFileName.IsNullOrEmpty()) sb.AppendLine("App.DefaultRootFileName: " + DefaultRootFileName); if (!DefaultHandler.IsNullOrEmpty()) sb.AppendLine("App.DefaultHandler: " + DefaultHandler); if (!HttpHandlerFactory.DebugLastHandlerArgs.IsNullOrEmpty()) sb.AppendLine("App.DebugLastHandlerArgs: " + HttpHandlerFactory.DebugLastHandlerArgs); response.ContentType = "text/plain"; response.StatusCode = 404; context.EndHttpHandlerRequest(skipClose: true, afterHeaders: r => r.Write(sb.ToString())); }