Yet another way to determine root paths in ASP.NET
less than 1 minute read
How many times I have tried to find the root path of an ASP.NET page or a handler (ASHX) in order to call another URL I can hardly count. When working with WMS and WFS services and connected documents - when you call all kind of weird 'services' - it's something that needs to be done often. I decided to put a few in what seems to become my trade mark - extension methods.
I created the following extensions to HttpContextusing System;
using System.Web;
namespace LocalJoost.Utilities.Web
{
public static class HttpContextExtensions
{
public static string FullRootPath( this HttpContext context )
{
return context.Request.Url.AbsoluteUri.Split(
new[] { context.Request.Url.AbsolutePath },
StringSplitOptions.RemoveEmptyEntries)[0];
}
public static string FullApplicationPath(this HttpContext context)
{
return string.Concat(context.FullRootPath(),
context.Request.ApplicationPath);
}
}
}
In the Page_Load of an aspx page you can, for instance, use the methods as described below:var r = Context.FullRootPath();
var a = Context.FullApplicationPath();
r will contain something like "http://localhost:3974" and a "http://localhost:3974/YourTestSite". Maybe there are simpler ways, but these work very well for me.