Czy istnieje sposób na utworzenie katalogu wirtualnego w usługach IIS Express? Wiem, że Cassini nie może tego zrobić i byłoby miło móc to zrobić bez korzystania z pełnej wersji IIS.
Mam to tak daleko, że mogę przeglądać moją aplikację lokalnie w IIS Express w następujący sposób:
Chciałbym utworzyć katalog wirtualny o nazwie „OffSiteStuff” i wskazać go w jakimś miejscu na moim dysku C, na przykład „c: \ offsitestuff”, a następnie przeglądać elementy w tym folderze w następujący sposób:
http: // localhost: 1132 / OffSiteStuff / UserUploadedImage.jpg
Wiem, że mógłbym to zrobić z folderem w mojej witrynie i nadal używać IIS Express lub, jeśli o to chodzi, zwykłego starego Cassini, ale ten folder będzie przechowywać obrazy przesłane przez użytkowników i naprawdę nie chcę, aby te obrazy były pomieszane z pliki aplikacji.
Innym rozwiązaniem typu „idź na całość” jest wdrożenie witryny w pełnowymiarowej instancji Server 2008 IIS 7.5 za każdym razem, gdy chcę debugować funkcje korzystające z zawartości zewnętrznej, ale jest to również trochę kłopotliwe.
Czy jest jakiś sposób mogę to zrobić w <System.WebServer />
elemencie konfiguracji sieci Web?
źródło
applicationHost.config
Plik jest w katalogu głównym projektu:${PROJECT}\.vs\config\applicationHost.config
.Odpowiedzi:
Konfiguracją ekspresową usług IIS zarządza plik applicationhost.config.
Możesz go znaleźć w
Wewnątrz można znaleźć sekcję witryn, w której znajdują się sekcje dla każdej witryny skonfigurowanej w usługach IIS Express.
Dodaj (lub zmodyfikuj) sekcję witryny, taką jak ta:
Praktycznie musisz dodać nowy tag aplikacji w swojej witrynie dla każdego katalogu wirtualnego. Otrzymujesz dużą elastyczność, ponieważ możesz ustawić inną konfigurację katalogu wirtualnego (na przykład inną wersję .Net Framework)
EDYTUJ Podziękowania dla Fevzi Apaydın za wskazanie bardziej eleganckiego rozwiązania.
Możesz osiągnąć ten sam wynik, dodając jeden lub więcej tagów virtualDirectory do tagu aplikacji:
Odniesienie:
źródło
applicationhost.config
uległa zmianie. Bardziej sensownie niż poprzednie wersje, znajduje się teraz w.vs\config
podfolderze folderu rozwiązania.Podejście @ Be.St. Jest prawdziwe, ale niekompletne. Po prostu kopiuję jego wyjaśnienie, poprawiając niewłaściwą część.
Konfiguracją ekspresową usług IIS zarządza plik applicationhost.config.
Możesz go znaleźć w
Wewnątrz można znaleźć sekcję witryn, w której znajdują się sekcje dla każdej witryny skonfigurowanej w usługach IIS Express.
Dodaj (lub zmodyfikuj) sekcję witryny, taką jak ta:
Zamiast dodawać nowy blok aplikacji, powinieneś po prostu dodać nowy element virtualDirectory do elementu nadrzędnego aplikacji.
Edycja - Visual Studio 2015
Jeśli szukasz pliku applicationHost.config i używasz VS2015, znajdziesz go w:
źródło
W VS2013 zrobiłem to w następujących krokach:
1. Kliknij prawym przyciskiem projekt aplikacji internetowej i naciśnij Właściwości
2. Wyświetl kartę „Sieć” na stronie Właściwości
3. W obszarze Serwery, przy czym domyślnym wyborem z listy rozwijanej jest „IIS Express”, w polu „Adres URL projektu” zmień adres URL, używając numeru portu na taki, który Ci odpowiada. Na przykład usunąłem numer portu i dodałem "/ MVCDemo4" po localhost.
4. Kliknij przycisk „Utwórz katalog wirtualny”.
5. Uruchom swój projekt, a zostanie użyty nowy adres URL
źródło
Jeśli używasz programu Visual Studio 2013 (może wymagać wersji Pro lub nowszej), udało mi się dodać katalog wirtualny do witryny internetowej IIS Express (opartej na plikach), klikając prawym przyciskiem myszy witrynę w Eksploratorze rozwiązań i klikając Dodaj> Nowy katalog wirtualny. Spowoduje to dodanie wpisu do pliku applicationhost.config, podobnie jak w przypadku metod ręcznych opisanych tutaj.
źródło
Nowa opcja to Jexus Manager dla IIS Express,
https://blog.lextudio.com/2014/10/jexus-manager-for-iis-express/
To tylko narzędzie do zarządzania, które umiesz używać.
źródło
Miałem coś innego, same pliki były niedostępne w środowisku SBS.
Usuń pliki z folderu konfiguracyjnego (jeśli nie możesz ich otworzyć!) I zastąp je kopią folderu na swoim lokalnym komputerze.
Naprawiłem to dla mnie :)
źródło
Musiałem dokonać wpisu w pliku [projekt] .vs \ config \ applicationhost.config.
Wcześniej działał od wdrożenia, ale nie z kodu.
źródło
W odpowiedzi na dalsze pytanie -
Nigdy nie znalazłem spójnej odpowiedzi na to nigdzie, ale potem doszedłem do wniosku, że możesz to zrobić za pomocą zdarzenia po kompilacji, używając zadania XmlPoke w pliku projektu witryny -
Możesz użyć tej techniki, aby ponownie przypisać wszystko w pliku przed uruchomieniem IISExpress. Pozwoliłoby to początkowo wymusić plik applicationHost.config w GIT (zakładając, że jest on ignorowany przez gitignore), a następnie ponownie przypisać wszystkie ścieżki w czasie kompilacji. GIT zignoruje wszelkie zmiany w pliku, więc można je teraz łatwo udostępniać.
W odpowiedzi na kolejne pytanie dotyczące dodawania innych aplikacji w ramach jednej witryny:
Możesz utworzyć witrynę w pliku hostów aplikacji, tak jak na serwerze. Na przykład:
Następnie użyj powyższej techniki, aby zmienić lokalizacje folderów w czasie kompilacji.
źródło