server mappath c# ejemplos
httpcontext.current.server.mappath Referencia de objeto no establecida en una instancia de un objeto (3)
Estoy usando el siguiente código dentro de una clase:
string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html");
El archivo teste.html está en la carpeta
Pero cuando se abra el archivo se genera el siguiente error:
Referencia a objeto no establecida como instancia de un objeto.
No utilice Server.MapPath. Es lento. Use esto en su lugar, HttpRuntime.AppDomainAppPath
. Mientras su sitio web esté funcionando, esta propiedad siempre estará disponible para usted.
Entonces úsalo así:
string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "email/teste.html");
Si el código no se está ejecutando desde un subproceso, se está ejecutando una httprequest
entonces HttpContext.Current
es null
(por ejemplo, cuando se llama a un método a través de BeginInvoke
) - vea http://forums.asp.net/t/1131004.aspx/1 .
Siempre puede usar HttpRuntime
http://msdn.microsoft.com/en-us/library/system.web.httpruntime.aspx
Si no hay HttpContext
(por ejemplo, cuando se llama al método a través de BeginInvoke
, como señaló Yahia), la llamada a HttpContext.Current.Server.MapPath()
debe fallar. Para esos escenarios, hay HostingEnvironment.MapPath()
en el espacio de nombres System.Web.Hosting
.
string filePath = HostingEnvironment.MapPath("~/email/teste.html");