我有一个ASP.NET MVC站点,我在Visual Studio 2013中的本地IIS上进行调试。在某些频率下,我在构建中获得了一个对话框弹出窗口,如下所示:
Intellitrace不可用,因为另一个应用程序正在进行分析 在Web服务器上
如果我选择"否"然后构建中止,如果我选择是,那么我不能在断点上使用Intellisense。造成这种情况的原因是什么?
关闭所有Visual Studio实例,停止应用程序池和Web服务器,然后再次重新启动它们并不能解决此问题。也没有重新启动。
如果我观察任务管理器的详细信息面板,我只能看到一个w3wp.exe实例在我停止应用程序池后消失了,所以我假设任何有它的钩子进入分析是不是通过工作过程在我看来是VS如何附加自己进行调试。
网络服务器上没有其他应用程序,我在这台机器上没有自定义WMI。如果我在VS中查看Performance Explorer面板,它是空的,如果我选择了附加/分离操作,那么在结果窗口中"将Profiler附加到Process",如果我按附加列排序,我什么都看不到与任何东西都有关系。
我应该在哪里寻找这个问题的根源?
答案 0 :(得分:1)
所以问题是分配给网站的ApplicationPool与网站名称相同。即网站名称contoso
和名为contoso
的应用程序池。
我不确定为什么这是一个问题或者事情发生了什么但是会承认这是一个糟糕的(匆忙的)命名练习。
你可以拥有一个包含网站名称的应用程序池,即contosoAnythingElseHere
,IntelliTrace可以正常工作,但如果两个字符串完全相同,你最终会得到我的问题中描述的IntelliTrace锁定或该错误的变体关于另一个应用程序的消息"录制"。
除了我公认的不良命名做法,我还是愿意打赌它是IntelliTrace中因缺乏强类型而导致的错误。
我的理论是,某种类型的过滤器只使用AppPool名称作为类型字符串,而不是查找名称为contoso
的AppPool类型。
由于网站和AppPool都有相同的名称,某些地方可能会对某种锁定感到困惑。如果它们被正确输入,那么如果它们具有相同的名称则不重要。
如果有人有更好的想法或可以让我直截了当,我会全神贯注,但如上所述,正确的命名行为不需要进行任何进一步的讨论。