Подтвердить что ты не робот

Httpcontext.current.server.mappath Ссылка на объект не установлена ​​в экземпляр объекта

Я использую следующий код внутри класса:

string filePath = HttpContext.Current.Server.MapPath("~/email/teste.html");

Файл teste.html находится в папке

Но когда он откроется, в файле создается следующая ошибка:

Ссылка на объект не установлена ​​в экземпляр объекта.

4b9b3361

Ответ 1

Не используйте Server.MapPath. Это медленно. Используйте это вместо HttpRuntime.AppDomainAppPath. Пока ваш веб-сайт работает, это свойство всегда доступно вам.

Затем используйте его следующим образом:

string filePath = Path.Combine(HttpRuntime.AppDomainAppPath, "email/teste.html");

Ответ 3

Если нет HttpContext (например, когда метод вызывается через BeginInvoke, как указал Яхия), вызов HttpContext.Current.Server.MapPath() должен завершиться неудачно. Для этих сценариев существует HostingEnvironment.MapPath() в пространстве имен System.Web.Hosting.

string filePath = HostingEnvironment.MapPath("~/email/teste.html");