Je souhaite obtenir dynamiquement l'URL racine absolue d'une application ASP.NET. Il doit s'agir de l'URL racine complète de l'application sous la forme : http(s)://hostname(:port)/
J'ai utilisé cette méthode statique:
public static string GetSiteRootUrl()
{
string protocol;
if (HttpContext.Current.Request.IsSecureConnection)
protocol = "https";
else
protocol = "http";
StringBuilder uri = new StringBuilder(protocol + "://");
string hostname = HttpContext.Current.Request.Url.Host;
uri.Append(hostname);
int port = HttpContext.Current.Request.Url.Port;
if (port != 80 && port != 443)
{
uri.Append(":");
uri.Append(port.ToString());
}
return uri.ToString();
}
MAIS, et si je n'ai pas HttpContext.Current
dans la portée ?
J'ai rencontré cette situation dans un CacheItemRemovedCallback
.