ASP.NET MVC 2 VirtualPathProvider GetFile every time for every request

我的梦境 提交于 2019-12-20 20:40:05

问题


I have implemented a VirtualPathProvider. The VirtualPathProvider reads the view from File system.

However my problem is the method GetFile(string virtualPath) is not executed every time for every request. I think it is related to the caching, isn't it? What I want is getting file every time for every request. Because for some cases, the page in the file system will be modified and users want the system shows the changes immediately.

Thanks.


回答1:


I found the solution myself on the internet.

Really thanks jbeall replied on 07-15-2008, 11:05 AM.

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

In short words, overrides the following methods

  1. GetCacheDependency - always return null
  2. GetFileHash - always return different value

After these modifications, for every request, MVC gets the file from source directly.




回答2:


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();

    }
}


来源:https://stackoverflow.com/questions/3747858/asp-net-mvc-2-virtualpathprovider-getfile-every-time-for-every-request

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!