una saveas rutas ruta requiera relativas relativa raíz que puede pero permitida permite parte para otra método física está esperaba encontrar configurado asigna aquí aplicación acceso absolutas absoluta c# asp.net path

c# - saveas - Obtener una ruta virtual relativa desde la ruta física



system web httpexception es una ruta de acceso física pero se esperaba una ruta de acceso virtual (4)

Tal vez esta pregunta es lo que estás buscando. Allí sugieren:

String RelativePath = AbsolutePath.Replace(Request.ServerVariables["APPL_PHYSICAL_PATH"], String.Empty);

¿Cómo puedo obtener la ruta virtual relativa de la ruta física en asp.net? El método inverso es como a continuación:

Server.MapPath("Virtual Path Here");

Pero, ¿qué es el reverso del método superior?


También podrías hacer algo como esto:

string relativePath = absolutePath.Replace(HttpContext.Current.Server.MapPath("~/"), "~/").Replace(@"/", "/");

La ventaja es que no necesita HttpContext.Current.Request .


public static string MapPathReverse(string fullServerPath) { return @"~/" + fullServerPath.Replace(HttpContext.Current.Request.PhysicalApplicationPath,String.Empty); }


Request.ServerVariables["APPL_PHYSICAL_PATH"]

está bien, pero no siempre. Está disponible solo si hay una solicitud HTTP.

Por otro lado, la llamada

HostingEnvironment.ApplicationPhysicalPath

está siempre disponible.