0

有谁知道为什么我使用 PerfView 和集合的进程/文件/注册表堆栈部分对 FileOpenOrCreate 进行数千次调用以查找随机 .cshtml 和 .vbhtml 文件?

在此处输入图像描述

4

1 回答 1

0

如果您只花一点时间在源代码上(但不清楚如何定位源文件),您可以看到 ASP.NET 运行时 ( WebPageRoute) 正在尝试将请求路径映射到文件系统路径,

https://github.com/aspnet/AspNetWebStack/blob/42991b3d2537b702736463f76a10a4fcf2ea44c9/src/System.Web.WebPages/WebPageRoute.cs#L35

在该过程中,它使用了一个缓存MapPathBasedVirtualPathProvider

https://referencesource.microsoft.com/#System.Web/Hosting/MapPathBasedVirtualPathProvider.cs,78

PerfView 记录的文件系统访问与构建此类缓存的行为相匹配,因此那里似乎没有任何问题。

于 2021-05-20T13:04:19.733 回答