Как пометить (установить заголовок) для процесса IIS Express? - PullRequest
16 голосов
/ 18 июня 2011

У меня есть решение для нескольких веб-сайтов, и я использую Cassini для разработки. Когда вышел IIS Express, я перешел на один из веб-сайтов, чтобы использовать его, и все работало нормально. Я просто переместил другой веб-сайт для использования IIS Express и сразу же столкнулся с проблемой отладки: IIS Express не помечает свои процессы, поэтому теперь, когда у меня запущены два из них, я не могу отличить их в разделе «Присоединение к процессу» диалог.

Есть ли способ, чтобы IIS Express установил заголовок процесса? У кого-нибудь есть какие-либо советы по разделению нескольких экземпляров IIS Express для присоединения отладчика?

Обновление Обходным способом сделать это является выполнение контекстного меню «Показать все приложения» значка на панели задач IIS Express и обращение к PID из списка при подключении отладчика. Лучше, чем ничего, но было бы неплохо, если бы был лучший способ.

Обновление 2 Я добавил проблему подключения: https://connect.microsoft.com/VisualStudio/feedback/details/729475/impossible-to-differentiate-iis-express-instances-when-attaching-debugger

Ответы [ 4 ]

4 голосов
/ 18 июня 2011

Кроме того, вы можете добавить этот код для запуска отладчика изнутри вашей страницы.Это быстро и просто, и вы можете просто использовать скрытую локальную страницу, чтобы вызвать ее и запустить ваш отладчик.

System.Diagnostics.Debugger.Launch();
2 голосов
/ 21 марта 2012

Я запускаю экземпляры IISExpress из командного файла.Имя файла cmd затем отображается как имя процесса в «Присоединить к процессу».

Например: иметь это в файле MySite.cmd

"C:\Program Files (x86)\IIS Express\iisexpress.exe" /siteid:1

Будетотображаются в столбце заголовка в приложении к процессу как

MySite

0 голосов
/ 07 сентября 2018

Я согласен с необходимостью маркировать процессы для диалога «присоединить к процессу». Однако для вашего конкретного случая есть обходной путь.

Обход:

Если у вас есть два проекта в одном решении, вы можете выбрать несколько проектов запуска:

https://docs.microsoft.com/en-us/visualstudio/ide/how-to-set-multiple-startup-projects?view=vs-2015

Solution Properties

0 голосов
/ 16 мая 2016

Не забудьте ссылку на System.Management ...

public static Regex siteNamePattern = new Regex("/site:\"(?<sitename>[^\"]+)\"", RegexOptions.Compiled);

...

var iisExpressSiteNames = new ManagementObjectSearcher(
    "select CommandLine, ProcessId from Win32_Process where Name='iisexpress.exe'")
    .Get().Cast<ManagementBaseObject>().ToDictionary(
    o => int.Parse(o["ProcessId"].ToString()),
    o => siteNamePattern.Match(o["CommandLine"].ToString()).Groups["sitename"].Value
);
...