ASP.NET MVC 2 VirtualPathProvider GetFile каждый раз для каждого запроса

Я реализовал VirtualPathProvider. VirtualPathProvider считывает представление из файловой системы.

Однако моя проблема заключается в методеGetFile(string virtualPath) не выполняется каждый раз для каждого запроса. Я думаю, что это связано с кэшированием, не так ли? Что я хочу этополучать файл каждый раз для каждого запроса, Поскольку в некоторых случаях страница в файловой системе будет изменена, и пользователи захотят, чтобы система немедленно показала изменения.

Благодарю.

 Alex Yeung22 сент. 2010 г., 06:06
Благодарю за ваш ответ. VirtualPathProvider вызывается для каждого запроса, но толькоbool FileExists(string virtualPath) метод вызывается для каждого запроса. Я попытался переопределить все методы в VirtualPathProvider, но я все еще не могу найти решение.
 Alex Yeung22 сент. 2010 г., 06:11
На самом деле, я просто запускаю пример изpadcom13.blogspot.com/2009/04/virtualpathprovider-example.html.
 Clicktricity21 сент. 2010 г., 00:03
Ваш провайдер вызывается каждый раз, когда в режиме отладки? Если это так, то это кэширование, так как кэширование представлений отключено, когда включена отладка.

Ответы на вопрос(2)

Решение Вопроса

Большое спасибоjbeall ответил 07-15-2008, 11:05 утра.

http://forums.asp.net/t/1289756.aspx

Короче говоря, переопределяет следующие методы

GetCacheDependency - всегда возвращать нольGetFileHash - всегда возвращать другое значение

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

public class MyVirtualPathProvider : VirtualPathProvider
{

    public override CacheDependency GetCacheDependency(string virtualPath, IEnumerable virtualPathDependencies, DateTime utcStart)
    {
        return null;

    }

    public override String GetFileHash(String virtualPath, IEnumerable virtualPathDependencies)
    {
        return Guid.NewGuid().ToString();

    }
}

Ваш ответ на вопрос