.NET MVC 3 操作是否应触发 w3wp.exe 来生成进程监视器“PATH NOT FOUND”和“NAME NOT FOUND”错误?

.NET MVC 3 操作是否应触发 w3wp.exe 来生成进程监视器“PATH NOT FOUND”和“NAME NOT FOUND”错误?

我在 Stack Overflow 上问过这个问题,但有人建议我也在这里问,因为它可能与 IIS 有关:

如果我创建一个开箱即用的 ASP.NET MVC 3 Web 应用程序(非空、Razor、无单元测试)并将其部署到 IIS 7.5 站点(.NET 4、集成管道),则我触发的每个控制器操作都会导致 procmon 中出现大量“未找到名称”和“未找到路径”错误。

w3wp.exe 进程正在尝试访问 MVC 路由引擎应拾取和处理的文件系统位置。这是仅单击一次“登录”链接后 procmon 日志的一小部分:

进程监视器输出

这是预期的行为吗?我觉得不对。

我之所以遇到这种情况,是因为我的服务器 CPU 利用率高达 100%。我的一个调用发生得非常频繁(导致“找不到路径”错误),以至于它占用了 CPU。 当我在尝试访问的路径上创建文件系统文件夹时,CPU 利用率立即降至 0%(两种情况下,网站上均有约 85 个并发用户)。

答案1

这是正常的。

每个视图文件(.cshtml使用 C# 的 Razor 视图)可以位于多个众所周知的位置(这允许项目中有多个视图引擎和共享代码)。控制器第一次需要视图时必须找到它。

对同一视图的重复请求不应引起进一步的搜索,但 ASP.NET MVC 运行时将检测更新:检查文件(包括项目程序集)没有未来的日期或触发 AppDomain 重新启动的某些内容。

相关内容