Dołącz debuger do wystąpienia usług IIS

83

Mam IIS 5.1 na maszynie XP i Visual Studio 2005. Jak mam dołączyć mój debugger do wystąpienia IIS.

BTW: Nie widzę procesu IIS w uruchomionych procesach lub prawdopodobnie nie wiem, czego szukać.

Mihai Lazar
źródło
1
Dla innych pochodzących z Google: Najwyraźniej nie jest to możliwe w programie Visual Web Developer 2010 Express. Podejrzewam, że nie ma go też w Visual C # Express.
Joel Peltonen

Odpowiedzi:

133

W programie Visual Studio:

  1. Kliknij „Debuguj” na pasku menu
  2. Kliknij „Dołącz do przetwarzania”
  3. Zaznacz pole wyboru „ Pokaż procesy wszystkich użytkowników ” w lewym dolnym rogu
  4. Wybierz aspnet_wp.exe , w3p.exe lub w3wp.exe z listy procesów
  5. Kliknij „Dołącz”
Al W
źródło
1
Dzięki. Czy wiesz, jak to zrobić w Vista Business i IIS 7?
Mihai Lazar
35
spróbuj poszukać procesu w3p.exe i dołącz go,
wykonując
2
@Mihai: W systemie Vista / Win7 / 2008 / 2008R2 musisz również uruchomić debugger jako administrator, aby móc to zrobić.
Richard
1
@Rcihard Inną rzeczą jest to, że istnieje wiele domen ApplicationDomains, z których każda uruchamia kolejną instancję w3wp.exe i muszę uważać, która z nich jest obecnie uruchomiona z moim kodem :)
Mihai Lazar
5
@MihaiLazar Uruchom, C:\windows\system32\inetsrv\appcmd list wpaby wyświetlić pule aplikacji i ich identyfikatory procesów i znaleźć, do której z nich dołączyć. blogs.msdn.com/b/friis/archive/2009/10/22/…
Nathan
18

Aby wyjaśnić odpowiedź Jimmiego R. Houta…

Jeśli chcesz debugować aplikację internetową VS i IIS, możesz wykonać następujące czynności:

  1. Hostuj witrynę w usługach IIS (katalog wirtualny itp.).
  2. Następnie w VS2005 zrób to:

    • Kliknij prawym przyciskiem myszy Projekt sieci Web → Właściwości → Opcje startowe → Użyj niestandardowego serwera → Podstawowy adres URL → Wprowadź adres witryny jako hostowany w IIS.
    • Hit, F5a będziesz mógł debugować swój kod

To samo działa również dla VS 2008.

Amitd
źródło
Po latach mogę potwierdzić, że to nadal działa w nowszych wersjach IIS (obecnie używam 10.0.18362.1 przez Windows 10). Wykonałem powyższe kroki w VS2010 i mogłem zdalnie debugować bez dołączania do usług. Poza tym nie można znaleźć w2p.exe, w3wp.exe, aspnet_wp.exe, donet.exe lub inetinfo.exe do dołączenia.
Feynt
15

Używam systemu Windows 7 z usługami IIS w wersji 7.5 i musiałem również zaznaczyć pola „Pokaż procesy wszystkich użytkowników” i „Pokaż procesy we wszystkich sesjach” - na dole okna dialogowego „Dołącz do procesu”.

Ponadto umieściłem moją aplikację w określonej puli aplikacji, co oznacza, że ​​można ją następnie zobaczyć jako oznaczoną jako w3wp.exe.

Koder
źródło
5

Proces usług IIS to aspnet_wp.exe.

W rzeczywistości dołączanie do procesu aspnet_wp.exe jest tym, co robi VS, gdy projekt jest ustawiony na używanie usług IIS do debugowania.

Jimmie R. Houts
źródło
3

Możliwe nazwy procesu ASP.NET:

  • w3wp.exe to IIS 6.0 lub nowszy.
  • aspnet_wp.exe to wcześniejsze wersje usług IIS.
  • iisexpress.exe to IISExpress.
  • dotnet.exe to ASP.NET Core.
  • inetinfo.exe to starsze aplikacje ASP działające w procesie.

Od Znajdź nazwę procesu ASP.NET

Michael Freidgeim
źródło
1

Musisz także otworzyć Internetową usługę informacyjną z Panelu sterowania> Narzędzia administracyjne. Kliknij prawym przyciskiem myszy odpowiednią witrynę internetową, kliknij kartę katalogu domowego i wybierz przycisk konfiguracji. Otworzy się nowy formularz z trzema zakładkami - kliknij jedną z nich i wybierz dwie opcje w sekcji flagi debugowania. Jest to również konieczne do debugowania.

Mikrofon
źródło
2
Jest to potrzebne tylko do debugowania kodu ASP. ASP.NET, ISAPI, ... i wszystkie inne sposoby dodawania kodu nie wymagają tego.
Richard
0

Korzystanie z wtyczki Attach to IIS ( VS2015 , VS2017 ) pozwala zaoszczędzić kilka kliknięć - szczególnie w przypadku ekosystemu witryn hostowanych przez IIS (na przykład jeden frontend z wieloma usługami zaplecza)

placet
źródło