MVC3虚拟目录视图文件夹很慢

时间:2012-05-11 10:49:21

标签: asp.net-mvc-3 visual-studio-2010 iis-7.5

我有一个MVC3应用程序,它通常使用视图和控制器。

我还有一个控制器TestController,可以从IIS 7.5中的虚拟目录设置返回视图。

在视图中的IIS内部我添加了虚拟目录Test,该目录指向我本地磁盘上的目录和我的cshtml页面。

第一次请求时,视图的呈现最多需要20分钟,但后续请求需要几秒钟。

我本地计算机上的实际文件夹包含1000个cshtml页面 - 这是一个问题吗?

为什么我的应用程序需要20分钟(第一个请求)从虚拟目录渲染视图,以及秒在解决方案中呈现视图?

非常感谢任何帮助。

[进一步更新] - 这发生了很多次,然后才停止发生。然后我不得不删除虚拟目录并在IIS中重新添加它,它又开始发生了。

我决定运行蚂蚁表演分析器。这是结果(我在等待了近30分钟后停止了它) Ants performance profiler

我感觉我们可能会遇到僵局,但我不知道如何测试这个

1 个答案:

答案 0 :(得分:1)

创建自己的虚拟路径提供程序后,我发现一旦从我的虚拟目录中请求了一个文件,它就会遍历目录中的每个文件并在每个文件上调用GetCacheDependency。

我相信Pranav上面的解释是正确的,因此是答案,但下面是我采取的方法:

  1. 将我的文件从磁盘移至couchbase
  2. 创建我自己的自定义VirtualPathProvider
  3. 创建我自己的自定义CacheDependency
  4. 如果文件是虚拟文件,则返回我的自定义CacheDependecy,否则 使用默认
  5. 使用MSMQ使缓存无效