.NET MVC 3操作是否应该触发w3wp.exe以生成进程监视器“路径未找到”和“未找到名称”错误?

时间:2011-03-23 20:08:23

标签: asp.net-mvc iis asp.net-mvc-3 process iis-7.5

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

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

Process Monitor Output

这是预期的行为吗?对我来说感觉不对。

我遇到这个是因为我的服务器CPU利用率固定在100%。我的一个调用经常发生(导致“找不到路径”错误)它正在占用CPU。 我在尝试访问的路径上创建文件系统文件夹后,CPU利用率降至0%(两种情况下,网站上约有85个并发用户)。

2 个答案:

答案 0 :(得分:1)

您可能处于Debug配置中。当定义了DEBUG时,MVC会执行大量的文件探测,而它在Release配置中没有这样做(Release使用文件缓存,所以你只需要第一次支付这个费用)。作为一般规则,您应始终使用Release配置进行性能测试。

答案 1 :(得分:0)

晚了 10 年...你试过setting allowSubDirConfig to false吗?

这不一定是对或错。 Microsoft 的默认设置是让 w3wp.exe 工作器检查这些目录,因此您可以拥有与根应用程序(例如子应用程序)不同的 web.config。这似乎是一个古老的默认设置,因为如果您正在部署 Microsoft api,您几乎总是希望 IIS 能够立即将路由切换到 dotnet/dotnetcore。我不是 IIS 管理员,所以我可能有一个不完整的理解。我们发现,将配置设置为 false 后,我们获得了轻微的性能提升。