IIS Express Natychmiastowe zamknięcie działającej witryny po zatrzymaniu aplikacji internetowej

173

Korzystam z programu Visual Studio 2012 w pierwszych dniach, kiedy chcę zatrzymać aplikację w IDE, aplikacja wciąż działała w IIS Express, mogłem przeglądać i pracować z uruchomioną aplikacją, ale teraz nie mogę. IIS Natychmiastowe zamknięcie aplikacji po naciśnięciu przycisku Stop. Odkąd pamiętam nie wprowadzałem żadnych zmian w ustawieniu. Jak mam to zrobić, tak samo jak w pierwszych dniach.

szabla
źródło
1
Spróbuj użyć opcji „wyświetl w przeglądarce” zamiast „odtwarzaj”. Czy zmieniłeś domyślną przeglądarkę? IE wyłącza się automatycznie po zatrzymaniu, Chrome nie.
Emanuele Greco
Nie, używam FF, ale czasami muszę debugować aplikację.
szabla
Myślę, że jest to coś związanego z IIS Express.
szabla
1
Zamiast klikać przycisk zatrzymania, możesz także użyć polecenia Odłącz wszystko w menu Debugowanie.
jessehouwing
1
Odłączył debuger od debugowanych procesów, ale nie zabija trwających procesów.
jessehouwing

Odpowiedzi:

344

Niedawno spotkałem się z podobną sytuacją, gdy nagle mój IIS Express przestał działać zaraz po tym, jak przestałem debugować. Stało się to po włączeniu opcji „Włącz edycję i kontynuuj” . Jeśli więc to wyłączysz, zobaczysz, że IIS Express działa nawet po zatrzymaniu debugowania.

Kliknij projekt prawym przyciskiem myszy> kliknij Właściwości> wybierz kartę „Sieć” po lewej stronie> odznacz pole Enable Edit and Continuewyboru.

Abhi
źródło
3
Mogę potwierdzić, że to rozwiązało problem.
Maxime Rouiller
51
To działa !! Kliknij projekt prawym przyciskiem myszy> kliknij Właściwości> wybierz kartę „Sieć” po lewej stronie> odznacz pole wyboru „Włącz edycję i kontynuuj”.
nv.snow
6
To działa. W Visual studio 2013 Otwórz „Narzędzia-> Opcje”, wybierz w drzewie „Debugowanie-> Edytuj i kontynuuj” i odznacz pole „Włącz edycję i kontynuuj”.
Renzo Ciot,
3
możesz przeczytać więcej o tej funkcji tutaj: blogs.msdn.com/b/webdev/archive/2013/07/11/…
gor
5
Nie, to złe rozwiązanie - zobacz poniżej prawidłowe rozwiązanie opublikowane przez @jessehouwing.
Josh M.
85

W VS2010 i VS2012 opcja Edytuj i kontynuuj jest domyślnie wyłączona podczas tworzenia nowego projektu aplikacji internetowej. W VS2013 jest domyślnie włączony.

Tę opcję można znaleźć na karcie WWW w oknie właściwości projektu WWW.

edytuj i kontynuuj opcję vs2013

Po włączeniu opcji „Włącz edycję i kontynuuj” debuger VS uruchamia aplikację sieci Web w usługach IIS Express. Po zatrzymaniu debugowania usługi IIS Express są również zamykane. W przypadku tego zachowania pasek systemowy IIS Express pojawi się podczas debugowania i zniknie po debugowaniu. To zachowanie jest takie samo, jak w VS2012, gdy włączona jest opcja Włącz edycję i kontynuuj.

Jeśli nie potrzebujesz funkcji „Edytuj i kontynuuj” podczas programowania i chcesz, aby program IIS Express pozostał po sesji debugowania, możesz po prostu wyłączyć opcję Włącz edycję i kontynuuj .

I f chcesz użyć „Edycja i dalej” albo jesteś rozwój Asp.net 5 miejsce (ASP.NET 5 projektów nie masz Edytuj i Kontynuuj wyboru we właściwościach projektu) trzeba użyć „DETECH wszystko” polecenia zatrzymać debugowanie.

Debugger odłączy się od procesu iis bez jego zamykania.

Oczywiście funkcja „Edytuj i kontynuuj” nie będzie działać do czasu ponownego rozpoczęcia debugowania.

wprowadź opis obrazu tutaj

giammin
źródło
obraz jest wart tysiąca słów: D
giammin
64

Zamiast naciskać (X) STOPprzycisk, możesz użyć Detach allpozycji menu w menu Debug. Główna różnica polega na tym, że przycisk zatrzymania zakończy każdy proces, który jest obecnie debugowany, podczas gdy polecenie Odłącz wszystko odłączy debuger od procesów, ale ich nie zakończy.

Normalny proces roboczy IIS również zostałby zakończony, ale ponieważ działał jako usługa, zostanie również automatycznie uruchomiony ponownie, dzięki czemu można go nadal używać bez konieczności ponownego uruchamiania procesu za pomocą |> Debuglub |> Start without debugging.

Zrzut ekranu w celach informacyjnych

Dodanie przycisku „Edytuj i kontynuuj” do paska narzędzi debugowania.

jessehouwing
źródło
3
jest to właściwie bliższe prawdziwej odpowiedzi. Opcja „EDYTUJ I KONTYNUUJ” jest funkcją .. Dołączanie i odłączanie znacznika debugującego do procesu nasłuchiwania jest podkreśloną koncepcją omawianej tutaj dyskusji i czy kliknięcie zatrzyma kończy ten proces słuchania, czy po prostu odłącza się od niego .. do którego można oczywiście ponownie podłączyć.
Brett Caswell
@jcmcbeth, to rzeczywiście działa w przypadku usług IIS Express .. Nie widzę, żeby to nie działało ... Procesy IIS Express są po prostu tym, ich własnymi oddzielnymi procesami ... Twój debuger VS uruchamia proces i przyłącza się do niego .. ale ten Proces nie zależy od dołączonego debuggera, aby działał bardziej niż twoja aplikacja lub serwer sieciowy wymaga gościa / agenta użytkownika / klienta do uruchomienia w proc
Brett Caswell
1
@jcmcbeth, to dziwna rzecz do powiedzenia na stronie z pytaniami i odpowiedziami, gdy mówisz o obsłudze funkcji i ustawieniach. To nie jest scenariusz „weź to lub zostaw”; Ty stwierdził, że nie pojawiają się do pracy z IIS Express. To robi.
Brett Caswell
1
Pole wyboru „Włącz edycję i kontynuuj” nie jest obecne w projektach VS 2015 RC for ASP.NET 5, więc jest to właściwy sposób, jeśli chcesz używać z nimi usług IIS Express.
Tomek
7
To jest odpowiedź na to, jak VS 2015 Update 2 zmieniło zachowanie usług IIS po usunięciu opcji Edytuj i Kontynuuj z karty sieci Web projektu.
Robharrisaz,
32

Wygląda na to, że od czasu wydania Visual Studio 2015 Update 2 zaakceptowane rozwiązanie już nie działa.

Najłatwiejszym rozwiązaniem, jakie do tej pory znalazłem, jest rozpoczęcie projektu poprzez wybranie opcji „ Rozpocznij bez debugowania ” z menu Debugowanie .

tocqueville
źródło
1
Wygląda na to, że mówisz o VS2015.
Chad Carisch
Cholera, właśnie napotkałem ten problem i opublikowałem pytanie na ten temat. Czy istnieje jakieś znane obejście tego problemu - inne niż ponowne powiązanie skrótów, aby rozpocząć bez debugowania i odłączać zamiast zatrzymania?
nikib3ro
1
Mówią, że naprawiają to w następnej aktualizacji, w międzyczasie inną sztuczką, której możesz użyć, jest naciśnięcie ctrl + F5, aby uruchomić witrynę bez debugowania: connect.microsoft.com/VisualStudio/feedback/details/2562576/ ...
mattmanser
4

Jest to prawdopodobnie najlepiej sklasyfikowane jako inne obejście, ale działa dla mnie.

Generalnie po raz pierwszy zaczynam projekt z menu kontekstowego „Wyświetl w przeglądarce” (lub CTRL-Shift-W).

Odtąd wszystko, co wymaga debugowania, zwykle dołączam do nowego istniejącego procesu iisexpress. Podczas gdy poruszanie się myszką przez menu kontekstowe sprawiłoby, że nie byłoby to uruchamiane, jest prawie tak szybkie jak F5 z następującymi naciśnięciami klawiszy:

  • Shift-F6, aby zbudować bieżący projekt lub Ctrl-Shift-B, aby zbudować całe rozwiązanie (jest to wymagane tylko wtedy, gdy wprowadziłeś zmiany, ale pomyślałem, że powinienem o tym wspomnieć, ponieważ F5 już to robi).
  • Ctrl-Alt-P otwiera okno dialogowe dołączania do procesu

  • wpisanie „iis” spowoduje przejście do procesu iisexpress

  • naciśnij Enter i jesteś przywiązany

Jeśli masz uruchomionych więcej niż jedną usługę iisexpress, ostatnia uruchomiona będzie zazwyczaj wyświetlana na górze listy. Inną opcją jest przesunięcie wyboru i dołączenie do nich wszystkich.

Ma to szereg zalet IMO. Przede wszystkim nie kończy procesu. Po drugie, okno przeglądarki nie jest zamykane po zatrzymaniu debugowania. To mnie załamuje, gdy widzę, jak programista powtarza 7 kroków, aby odtworzyć błąd, kiedy wszystko, co musi zrobić, to nacisnąć F5 w istniejącym oknie przeglądarki, aby po prostu ponownie opublikować po podłączeniu debugera. Na koniec muszę to zrobić już podczas przyłączania się do zakonnicy, aby uzyskać bardziej spójne doświadczenie.

b_levitt
źródło