2011-06-17 11 views
14

Mam rozwiązanie z wieloma stronami internetowymi i używam Cassini do programowania. Kiedy wyszedł IIS Express, przeniosłem jedną ze stron internetowych, aby z niego korzystać, i wszystko działało dobrze. Właśnie przeniosłem inną stronę internetową, aby korzystać z IIS Express i od razu wpadłem na problem z debugowaniem: IIS Express nie etykietuje swoich procesów, więc teraz, gdy mam już dwa z nich, nie mogę ich rozdzielić w "Dołącz do procesu" dialog.Jak oznaczyć (ustawić tytuł) dla procesu IIS Express?

Czy istnieje sposób, aby program IIS Express ustawił tytuł procesu? Ktoś ma jakieś wskazówki, aby odróżnić wiele instancji IIS Express od siebie w celu dołączenia debuggera?

Aktualizacja okrągłodenna o to sposobem jest wykonanie „Pokaż wszystkie aplikacje” menu kontekstowego ikony IIS Express, tacki i odniesienie PID z listy podczas mocowania debuggera. Lepsze niż nic, ale byłoby miło, gdyby był lepszy sposób.

Aktualizacja 2 dodałem connect problem: https://connect.microsoft.com/VisualStudio/feedback/details/729475/impossible-to-differentiate-iis-express-instances-when-attaching-debugger

+0

Sho Wszystkie aplikacje są wystarczająco dobre dla mnie - dzięki za podpowiedź – Jerph

+1

Connect po prostu zamknie ją jako "według projektu". –

Odpowiedz

4

alternatywna Możesz dodać ten kod, aby uruchomić debugger od wewnątrz swojej stronie. Jest prosty i łatwy w użyciu. Możesz użyć ukrytej strony lokalnej, aby zadzwonić i uruchomić debugger.

System.Diagnostics.Debugger.Launch(); 
2

biegnę instancje IISExpress z pliku wsadowego. Nazwa pliku cmd pojawia się jako nazwa procesu w Attach to Process.

np mieć to w pliku MySite.cmd

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

pokaże się w tytule colum w Dołącz do procesu jako

MySite

+0

Czy istnieje prosty sposób na uzyskanie identyfikatora witryny? –

+0

O ile mi wiadomo, wystarczy wejść i sprawdzić w pliku applicationhost.config. Możesz go znaleźć w% Twój folder użytkownika% \ Documents \ IISExpress \ config Możesz również uruchomić iisexpress.exe z argumentem/site: [nazwa-witryny] zamiast używać identyfikatora strony – Boycs

0

Nie zapomnij odniesienie do 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 
); 
+0

To oczywiście nie jest gotowe - udzielił odpowiedzi na twoje pytanie, ale można by użyć takiej odpowiedzi. –

Powiązane problemy