me he encontrado con esta pregunta en la búsqueda de manera de calcular una dirección URL (enlaces permanentes en la aplicación web) para proporcionar en algunas notificaciones por correo electrónico.
Estos se generaron en otro subproceso, por lo que HttpContext
no estaba disponible y quería evitar poner información relacionada con URL en la tabla de cola utilizada para generar los correos electrónicos.
El código:
public static String GetCurrentAppDomainBasePath(String prefix = "http://")
{
return String.Format("{0}{1}{2}",
prefix,
System.Net.Dns.GetHostEntry("").HostName,
System.Web.HttpRuntime.AppDomainAppVirtualPath
);
}
La función devuelve la ruta de acceso virtual completa como: http://full-host-name/AppName
. Por supuesto, existen algunas limitaciones: protocolo codificado (http
, https, etc.) y el uso de hostname
en lugar de domain name
(falla si se definen varios dominios en una sola máquina).
+1 Es bueno saber esto. Gracias. – Saar
Gracias, ni siquiera sabía que esta clase existía. – Tomasi
Es una clase de bajo nivel que la mayoría de las personas no necesita usar. – SLaks