2015-04-17 6 views
2

У меня есть сайт ASP.NET MVC, который я отлаживаю на локальном IIS в Visual Studio 2013. С некоторой частотой я получаю всплывающее диалоговое окно, как показано ниже:Отладка Intellitrace недоступна, потому что другое приложение профилирует

IntelliTrace не доступен, так как другое приложение профилирование на веб-сервере

Intellitrace is not available because another application is profiling on the Web server

Если я выбираю «нет», то сборка будет прервана, и если я выбираю да, то Я не могу использовать Intellisense на контрольных точках. Чем это вызвано?

Завершение всех экземпляров Visual Studio, прекращение пула приложений и веб-сервера, а затем перезапуск всех из них снова не решает эту проблему. Не перезагружается.

Если я смотрю панель сведений диспетчера задач, я могу увидеть только один экземпляр w3wp.exe, который исчезает после того, как я прекратил пул приложений, поэтому я предполагаю, что все, что у него есть, в профилировании не выполняется через рабочий процесс что, на мой взгляд, связано с тем, как VS присоединяется для отладки.

На веб-сервере нет других приложений, и у меня нет пользовательского WMI в игре на этом компьютере. Если я просмотрю панель Performance Explorer в VS, она пуста, и если я выберу действие attach/detach, то в появившемся окне «Attach Profiler to Process», если я сортирую по окну Attached, я вижу, что ничего не связано ни с чем.

Где я могу найти источник этой проблемы?

ответ

1

Таким образом, проблема заключалась в том, что ApplicationPool, присвоенный веб-сайту, имел то же имя, что и на веб-сайте. то есть имя веб-сайта contoso и пул приложений с именем contoso.

Я не знаю точно, почему это проблема или где что-то ломается, но уступят, что это была плохая (поспешная) практика именования.

У вас может быть пул приложений, содержащий имя веб-сайта, то есть contosoAnythingElseHere, а IntelliTrace будет работать, но если две строки точно совпадают, вы, в конце концов, получите блокировку IntelliTrace, описанную в моем вопросе, или вариант этого сообщения об ошибке приложение уже «записывает».

Помимо моей, по общему признанию, плохой практики именования, я готов поспорить, что это ошибка в IntelliTrace из-за отсутствия сильной типизации.

Моя теория будет заключаться в том, что где-то по пути фильтр какого-либо типа использует только имя AppPool как строку типа, а не поиск типа AppPool с именем = contoso.

Поскольку и сайт, и AppPool имеют одно и то же имя, что-то где-то, возможно, путается с каким-то замком. Если они были правильно напечатаны, не имеет значения, имеют ли они одно и то же имя.

Если у кого-то есть лучшая идея или может установить меня прямо, я все уши, но, как и выше, правильная практика именования устраняет необходимость в дальнейшем обсуждении.