ASP.NET Obtener ruta de archivo físico de URL
Pregunta
¿Hay una manera de obtener la ruta de archivo físico de la dirección URL de un ASP.NET?
Scenerio: Tengo una aplicación que se encuentra en dos severs, pero ahora estará en un montón más, y cada usuario pone en una ruta de archivo físico diferente. En este momento estoy haciendo esto:
//for server 1
if (Request.Url.GetLeftPart(UriPartial.Path).Contains(".com"))
{ Application["StoreFilesPath"] = "E:\\Data\\rootsite\\f1\\appsite\\Upload\\"; }
//for server 2
if (Request.Url.GetLeftPart(UriPartial.Path).Contains(".net"))
{ Application["StoreFilesPath"] = "E:\\Web\\rootsite2\\f34\\abc\\ghi\\appsite\\Upload\\"; }
Pero lo que tengo que hacer es algo como esto:
//for all servers
Application["StoreFilesPath"] = getPhysicalFilePath() +"\\Upload\\";
¿Cómo puedo hacerlo?
Solución
Se puede usar HttpServerUtility.MapPath
en el lado del servidor con el fin de obtener la ruta física de un archivo, y luego devolverlo en el objeto o Application
Session
, de manera similar a lo que está haciendo ahora.
En cuanto a la ruta física de un URL -. Puede que no haya uno, así como las direcciones URL pueden ser re-escrito
Otros consejos
Esta Server.MapPath ( "/" );
o esta HttpContext.Current.Server.MapPath ( "/" );
debe darle lo que necesita.
Esto es ahora:
HostingEnvironment.MapPath("/");