【问题标题】:Intellitrace debugging is not available because another app is profilingIntellitrace 调试不可用,因为另一个应用程序正在分析
【发布时间】:2015-06-24 06:33:40
【问题描述】:

我有一个 ASP.NET MVC 站点,我正在 Visual Studio 2013 中的本地 IIS 上进行调试。有时我会在构建时弹出一个对话框,如下所示:

Intellitrace 不可用,因为另一个应用程序正在分析 在网络服务器上

如果我选择“否”,则构建将中止,如果选择“是”,则无法在断点上使用 Intellisense。这是什么原因造成的?

关闭 Visual Studio 的所有实例,停止应用程序池和 Web 服务器,然后再次重新启动它们并不能解决此问题。重启也不行。

如果我查看任务管理器的详细信息面板,我只能看到 w3wp.exe 的一个实例,它在我停止应用程序池后消失,所以我假设它与分析的挂钩不是通过工作进程这样做的在我看来是 VS 是如何附加自己进行调试的。

Web 服务器上没有其他应用程序,我在这台机器上没有自定义 WMI。如果我在 VS 中查看性能资源管理器面板,它是空的,如果我选择附加/分离操作,那么在结果窗口“将探查器附加到进程”中,如果我按附加列排序,我可以看到没有任何东西附加到任何东西。

我应该在哪里寻找这个问题的根源?

【问题讨论】:

    标签: asp.net visual-studio windows-8.1 iis-8.5 intellitrace


    【解决方案1】:

    所以问题是分配给该网站的 ApplicationPool 与该网站具有相同的名称。即网站名称contoso 和名为contoso 的应用程序池。

    我不确定为什么这是一个问题或事情在哪里中断,但我会承认这是不好的(匆忙的)命名习惯。

    您可以拥有一个包含网站名称的应用程序池,即contosoAnythingElseHere,IntelliTrace 将起作用,但如果这两个字符串完全相同,您最终将获得我的问题中描述的 IntelliTrace 锁定或关于该错误消息的变体另一个应用程序已经在“录制”。

    除了我公认的糟糕的命名习惯之外,我愿意打赌这是 IntelliTrace 中的一个错误,源于缺乏强类型。

    我的理论是,某种过滤器在某处仅使用 AppPool 名称作为类型字符串,而不是查找名称 = contoso 的 AppPool 类型。

    由于站点和 AppPool 的名称相同,因此某处可能会对某种锁定感到困惑。然而,如果它们输入正确,那么它们是否具有相同的名称并不重要。

    如果有人有更好的想法或可以让我直言不讳,我会全力以赴,但如上所述,正确的命名习惯无需进一步讨论。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-11-19
      • 1970-01-01
      相关资源
      最近更新 更多