HttpContext.Current null внутри FileSystemWatcher

У меня есть приложение ASP.NET MVC 4.

Также у меня есть файл XML, расположенный в корне моего приложения.

Всякий раз, когда администратор изменяет этот файл, я хочу, чтобы приложение знало об этом и считывало новые значения.

...
FileSystemWatcher Watcher = new FileSystemWatcher();
Watcher.Changed += new FileSystemEventHandler(OnChanged);
...

private void OnChanged(object source, FileSystemEventArgs e) {
    var path = HttpContext.Current.Server.MapPath("~/"))
}

Каждый раз, когда HttpContext.Current кажется нулевым. Как получить корневую папку моего приложения, если это не работает?


person Jaanus    schedule 26.01.2014    source источник


Ответы (3)


Как получить корневую папку моего приложения, если это не работает?

AppDomain.CurrentDomain.BaseDirectory
person Joe    schedule 26.01.2014

именно то, что вам нужно,

var domainPath = HttpRuntime.AppDomainAppPath;

https://stackoverflow.com/questions/6861368/httpcontext-current-server-mappath-object-%20reference-not-set-to-an-instance-of-an

person bashkan    schedule 26.01.2014

И еще одна альтернатива; Среда хостинга. Путь карты. Что делает Server.MapPath без активного HttpContext.

См. В чем разница между Server.MapPath и HostingEnvironment. Путь карты?

на самом деле единственная разница в том, что вам разрешено передавать null в Server.MapPath(), но не в HostingEnvironment.MapPath().

person sisve    schedule 26.01.2014