我对 Visual Studio 2012 有疑问,这让我发疯。我们正在开发一个 ASP.NET Web 应用程序,在应用程序启动时,它必须将很多东西加载到内存中。它有时需要 20 到 30 分钟才能启动并准备好为第一个 http 请求提供服务。
我们正在使用 TFS 源代码控制,基本上,每次有人编辑文件时,TFS 都会将该文件标记为“已签出”(解决方案资源管理器中的文件名图标旁边出现红色小复选标记)并立即创建和删除一个“ app_offline.htm" 文件位于 Web 应用程序的根目录中。
这会导致 Web 应用程序卸载。我使用记录 Application_Start 和 Application_End 事件来发现这一点。然后我使用 SysInternals Process Monitor 查看正在发生的活动。当我看到 procmon 的神秘输出中提到了 app_offline.htm 时,我使用了一个名为 Directory Monitor 的单独文件系统观察程序,它确认 app_offline.htm 确实被创建并立即删除。
这样做的连锁反应是,如果您要进行一些更改,则应用程序必须在开发过程中多次卸载/重新加载。这是在浪费时间。
不仅如此,应用程序域的不断重新加载会导致 IIS 最终耗尽内存,然后我们必须执行 IISRESET。
有谁知道为什么 TFS 创建这个文件?是否有任何方法可以让它停止?