Когда таймер протекает, нет никакого текущего контекста HTTP. Это вызвано тем, что события таймера не связаны с определенным Запросом HTTP.
то, Что необходимо сделать, использовать HttpServerUtility. MapPath, где контекст HTTP доступен. Можно сделать это в одном из конвейерных событий запроса (таких как Page_Load) или в событии Global.asax, таких как Application_Start.
Присваивают результат MapPath переменной, доступной от Таймера. Прошедшее событие, где Вы могли использовать Путь. Объединение для получения местоположения определенного файла Вам нужно.
В моем случае это оказался HttpModule: Ext.Direct.Mvc (Ext.Direct для ASP.NET MVC). В этом модуле была ошибка (исправлена в версии 0.8.0), которая снова регистрировала маршруты каждый раз, когда вызывалась Init () для IHttpModule. (, который может вызываться несколько раз ). Если время было правильным, это повредит коллекцию RouteTable.Routes
и вызовет одно из двух исключений, указанных выше.