httpcontext.actuel.serveur.mappath Objet de référence non définie à une instance d'un objet
Je suis en utilisant le code suivant à l'intérieur d'une classe:
string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html");
Le fichier teste.html est dans le dossier
Mais quand il va ouvrir le fichier, le message d'erreur suivant est généré:
Objet de référence non définie à une instance d'un objet.
- C'est l'appel au
MapPath
où l'exception est survenue? Cela ressemble peut-être il ya une autre ligne qui lève l'exception, si c'est le cas, pouvez-vous mettre la ligne en réalité lève l'exception. - Presque tous les cas de
NullReferenceException
sont les mêmes. Veuillez voir "Ce qui est une exception NullReferenceException dans .NET?" pour obtenir des conseils.
Vous devez vous connecter pour publier un commentaire.
N'utilisez pas de Serveur.MapPath. C'est lent. Utiliser ce lieu,
HttpRuntime.AppDomainAppPath
. Tant que votre site web est en cours d'exécution, cette propriété est toujours disponible pour vous.Puis l'utiliser comme ceci:
../images/
si le code n'est pas exécuté à partir d'un thread exécute une
httprequest
puisHttpContext.Current
estnull
(par exemple, lorsque vous la méthode est appelée parBeginInvoke
) - voir http://forums.asp.net/t/1131004.aspx/1 .Vous pouvez toujours utiliser
HttpRuntime
voir http://msdn.microsoft.com/en-us/library/system.web.httpruntime.aspxSi il n'y a pas de
HttpContext
(par exemple, lorsque la méthode est appelée parBeginInvoke
, comme Yahia a souligné), l'appel àHttpContext.Current.Server.MapPath()
doit échouer. Pour ces scénarios, il y aHostingEnvironment.MapPath()
dans leSystem.Web.Hosting
espace de noms.../images/