2015-06-15 12 views
6

Przepraszam, jeśli to głupie pytanie, ale nie rozumiem. Stworzyłem zatem stronę ASP.NET 5 za pomocą Visual Studio 2015 i DNX.Serwer WWW dla ASP.NET 5, który działa bez debugowania aktywny

wyjęciu z pudełka mam te dwie zależności w moim project.json:

"Microsoft.AspNet.Server.IIS": "1.0.0-beta4", 
"Microsoft.AspNet.Server.WebListener": "1.0.0-beta4" 

pod „poleceń” w project.json Mam następujący:

"web": "Microsoft.AspNet.Hosting --server Microsoft.AspNet.Server.WebListener --server.urls http://localhost:5000" 

we właściwościach projektu Mogę zmieniać profile między "IIS Express" i "web" jako opcje wdrażania. Oba działają poprawnie, po uruchomieniu debugowania uruchamia się serwer WWW (IIS Express lub WebListener), a strona działa. Jeśli przestanę debugować serwer przestanie działać. WebListener otwiera "dnx.exe" w wierszu polecenia.

Ten pluggable server layer jest naprawdę miły, rozumiem. Ale jak mam skonfigurować programistę jako łatwy serwer, na którym mogę dokonać zmian w mojej witrynie i szybko zobaczyć zmiany? Mogę oczywiście zainstalować IIS i utworzyć stronę, która wskazuje na mój wwwroot, ale czy jest to moja jedyna opcja w świecie ASP.NET? Czy mogę mieć WebListener "uruchomiony w tle" (bez pokazywania mi wiersza polecenia z dnx.exe)? Mogę również uruchomić serwer węzłowy, ale po raz kolejny - jest wspaniale, że mogę, ale dlaczego muszę, gdy mam pełny pasek narzędzi ASP.NET?

ASP.NET 5 ma dynamic compilation, ale nie jestem pewien, jak go przetestować, ponieważ mój serwer internetowy jest uruchamiany tylko wtedy, gdy jestem w trybie debugowania.

Wiem, że to pre-release, ale jakakolwiek pomoc byłaby bardzo ceniona.

+0

Odpowiedziałem na to, co mogłem, ale niektóre z twoich terminów są niejasne. Co rozumiesz przez "serwer węzłowy" lub "pełny pasek narzędzi ASP.NET"? –

+0

Najlepiej jest zadać jedno pytanie na pytanie. Czasami dla jasności warto zadać dwa lub trzy ściśle powiązane ze sobą pytania związane z tym samym problemem, ale z "Ta wtrącająca się warstwa serwera jest naprawdę ładna, ..." wydaje się pytać, dlaczego ktoś użyłby serwera innego niż IIS. To naprawdę powinno zostać podzielone na osobne pytanie. Najprawdopodobniej znajdziesz więcej i lepszych odpowiedzi, korzystając z wielu skoncentrowanych pytań, zamiast pytania "tutaj jest garść rzeczy, których nie rozumiem, pomóż mi". –

+0

Dzięki za porady. Przez "serwer węzłowy" miałem na myśli serwer WWW node.js i "pełny toolbet ASP.NET" miałem na myśli "wszystkie funkcje zapakowane w ASP.NET". Jednakże - zgadzam się, że pytania w pytaniach są złym pomysłem, ale twoja odpowiedź jest naprawdę dobra, więc doceniam to. "Shift + F5" (start bez debugowania) był prawdziwą odpowiedzią, której szukałem - dzięki! – mikeesouth

Odpowiedz

6

Ale jak ja, jako programista skonfigurować łatwy serwer, gdzie mogę dokonać zmienić na mojej stronie i szybko zobaczyć zmiany.

Niezależnie od używanego serwera można użyć kompilacji dynamicznej, uruchamiając projekt bez debugowania (Shift + F5).

Z powodów architektonicznych kompilacja dynamiczna nie działa podczas uruchamiania z debugowaniem (F5) w programie Visual Studio. Wynika to z faktu, że różnica między Shift + F5 i F5 polega na tym, że w drugiej z nich VS przyłącza debugger do procesu.

Czy to wszystko będzie obsługiwane w przyszłości? To jest niejasne, ale teraz, ponieważ VS nie jest wystarczająco "inteligentny", aby poradzić sobie z odłączaniem się od procesu, czekaniem na dynamiczne przekompilowanie dnx, a następnie ponowne dołączenie do procesu. Jednak do tej pory nigdy nie miał on powodu wspierać takiego scenariusza, więc nie jest jasne, czy jest to po prostu "nie wie jeszcze, jak to zrobić", czy "nie można tego zrobić".

mogę oczywiście zainstalować IIS i stworzyć witrynę, która jest skierowaną do mojego wwwroot ale jest to moja jedyna opcja w świecie ASP.NET?

Nie. Można użyć dowolnego serwera WWW obsługującego usługę Microsoft.AspNet.Hosting. Dzisiaj twoje wybory są ograniczone do IIS, IIS Express i dwóch eksperymentalnych serwerów, z którymi się łączyłeś, ale celem jest umożliwienie stronom trzecim opracowania alternatyw, poprzez zapewnienie interfejsu, który można zaprogramować na (Microsoft.AspNet.Hosting).

ASP.NET 5 ma dynamiczną kompilację, ale nie jestem pewien, jak ją przetestować , ponieważ mój serwer internetowy jest uruchamiany tylko wtedy, gdy jestem w trybie debugowania.

Jeśli aplikacja internetowa jest uruchomiona, serwer jest uruchomiony. Brak webserver = brak aplikacji ASP.NET. Zakładam, że przez "tryb debugowania" masz na myśli "Rozpocznij od debugowania (F5)". Jeśli tak, to "Uruchom bez debugowania (Shift + F5)", aby naprawić problem, którego doświadczasz.

Oto ćwiczenia:

  1. Close Visual Studio (nie wymóg, ale przydatne, aby pokazać nic z tego nie jest specyficzne VS).
  2. Uruchom serwer WWW. Najprostszym sposobem byłoby dnx. sieć uruchamia się z wiersza poleceń w folderze głównym projektu. Można jednak uruchomić IIS Express (powinien już być skonfigurowany) lub nawet skonfigurować IIS i uruchomić go.
  3. Sprawdź, czy serwer internetowy i aplikacja internetowa są uruchomione, otwierając je w przeglądarce.
  4. Za pomocą notatnika lub innego edytora tekstu, edytuj plik w projekcie, który miałby widoczną zmianę lub po prostu wymuszenie błędu "wyrzuć nowy NullReferenceException()".
  5. Zapisz plik.
  6. Odśwież przeglądarkę.

Aplikacja internetowa odzwierciedli zmianę. Jeśli odświeżysz się szybko, możesz zauważyć lekkie opóźnienie. To jest dynamiczna kompilacja do pamięci.

+0

Znalazłem, że twoje ćwiczenie działa z Visual Studio z (Shift + F5), ale nie z 'dnx. sieć ". W tym drugim, na moim komputerze, aplikacja nie odzwierciedla zmiany. –

+0

Też go do pracy z Visual Studio. Kiedy próbuję uruchomić "dnx. Web" z wiersza poleceń, otrzymuję komunikat "Uruchomiony", ale serwer nie odpowiada na porcie 5000, tak jak powinien. Sądzę, że robię coś złego, ale na razie zaczynam od Visual Studio, a ja będę kopać dalej. – mikeesouth

+0

Dobra wiadomość, ale musiałem użyć "ctrl + F5" lub po prostu w menu 'Debuguj -> Rozpocznij bez debugowania' –