Jak mogę zmienić port IIS Express dla witryny

109

Chcę zmienić numer portu, na którym działa moja witryna podczas debugowania z programu Visual Studio. Używam programu Visual Studio 2012 i używam ASP.NET MVC 4 do moich projektów, w których chcę zmienić port. Losowy port lub naprawiony każdy będzie działał, po prostu chce zmienić port.

Mohit
źródło

Odpowiedzi:

128

Aby określić port dla projektu aplikacji sieci Web korzystającego z usług IIS Express

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy nazwę aplikacji, a następnie wybierz opcję Właściwości. Kliknij kartę Sieć.

  2. W sekcji Serwery w obszarze Użyj lokalnego serwera sieci Web IIS w polu Adres URL projektu zmień numer portu.

  3. Po prawej stronie pola adresu URL projektu kliknij opcję Utwórz katalog wirtualny, a następnie kliknij przycisk OK.

  4. W menu Plik kliknij Zapisz wybrane elementy.

  5. Aby zweryfikować zmianę, naciśnij klawisze CTRL + F5, aby uruchomić projekt. Nowy numer portu pojawi się na pasku adresu przeglądarki.

From How to: Określ port dla serwera deweloperskiego ( kopia zapasowa archive.org tutaj ).

hutchonoid
źródło
14
To nie działa w przypadku witryn internetowych. Tylko dla projektów aplikacji sieci Web.
Supersharp
2
Brak karty Web tutaj ... Można by pomyśleć, że w 2017 roku nie będzie to już problemem .. To, a przynajmniej powinniśmy być w stanie zmieniać porty bez konieczności robienia czarów
calcazar
Opcja Visual Studio 2015 nie istnieje (pusta witryna sieci Web ASP.NET) .. jak to zrobić?
KingRider
Robiłem to wszystko, z wyjątkiem kliknięcia przycisku Utwórz katalog wirtualny. To uczyniło coś innego; teraz działa. Ale dlaczego jest to konieczne?
Rod
Cóż, jeśli to zrobisz, nie używasz już usług IIS Express, ale lokalnych usług IIS. Po prostu przejdź do zakładki Web we właściwościach projektu i edytuj port na dowolne potrzebne.
VladT,
68

Oto bardziej ręczna metoda, która działa zarówno w przypadku projektów witryn internetowych , jak i projektów aplikacji sieci Web . (Nie możesz zmienić adresu URL projektu z poziomu programu Visual Studio dla projektów witryny sieci Web).

Projekty aplikacji internetowych

  1. W Eksploratorze rozwiązań kliknij projekt prawym przyciskiem myszy i kliknij Zwolnij projekt .

  2. Przejdź do pliku IIS Express ApplicationHost.config . Domyślnie ten plik znajduje się w:

    %userprofile%\Documents\IISExpress\config

    W najnowszych wersjach programu Visual Studio i projektach aplikacji sieci Web ten plik znajduje się w folderze rozwiązania w [Solution Dir]\.vs\config\applicationhost.config(zauważ, że folder .vs jest elementem ukrytym)

  3. Otwórz plik ApplicationHost.config w edytorze tekstu. W <sites>sekcji wyszukaj nazwę swojej witryny. W <bindings>sekcji swojej witryny zobaczysz taki element:

    <binding protocol="http" bindingInformation="*:56422:localhost" />

    Zmień numer portu (56422 w powyższym przykładzie) na dowolny. na przykład:

    <binding protocol="http" bindingInformation="*:44444:localhost" />

    Bonus: możesz nawet powiązać się z inną nazwą hosta i robić fajne rzeczy, takie jak:

    <binding protocol="http" bindingInformation="*:80:mysite.dev" />

    a następnie zamapuj mysite.devna 127.0.0.1w swoim hostspliku, a następnie otwórz swoją witrynę z „ http://mysite.dev

  4. W Eksploratorze rozwiązań kliknij projekt prawym przyciskiem myszy i kliknij opcję Wczytaj ponownie projekt .

  5. W Eksploratorze rozwiązań kliknij projekt prawym przyciskiem myszy i wybierz opcję Właściwości.

    • Wybierz kartę Sieć.

    • W sekcji Serwery, w obszarze Użyj lokalnego serwera sieci Web usług IIS, w polu Adres URL projektu wprowadź adres URL zgodny z nazwą hosta i portem wprowadzonym wcześniej w pliku ApplicationHost.config .

    • Po prawej stronie pola adresu URL projektu kliknij opcję Utwórz katalog wirtualny. Jeśli zobaczysz komunikat o powodzeniu, oznacza to, że kroki zostały wykonane poprawnie.

    • W menu Plik kliknij Zapisz wybrane elementy.

Projekty stron internetowych

  1. W Eksploratorze rozwiązań kliknij prawym przyciskiem myszy nazwę projektu, a następnie kliknij polecenie Usuń lub Usuń ; nie martw się, spowoduje to usunięcie projektu z rozwiązania, ale nie spowoduje usunięcia odpowiednich plików na dysku.

  2. Wykonaj krok 2 powyżej dla projektów aplikacji sieci Web.

  3. W oknie Solution Explorer kliknij prawym przyciskiem rozwiązanie, wybierz Dodaj, a następnie wybierz istniejący serwis internetowy ... . W oknie dialogowym Dodaj istniejącą witrynę sieci Web upewnij się, że jest wybrana karta Lokalne usługi IIS. W obszarze Witryny IIS Express wybierz witrynę, dla której zmieniono numer portu, a następnie kliknij przycisk OK.

Teraz możesz uzyskać dostęp do swojej witryny z nowej nazwy hosta / portu.

Saeb Amini
źródło
1
Niesamowite, dokładnie to, czego potrzebowaliśmy. Musiałem szukać działającego portu, ale to załatwiło sprawę, dziękuję.
hobwell
1
Dzięki, Saeb. To działa doskonale. Jeszcze jedna uwaga ... Używam kontroli źródła i po ponownym dodaniu projektu witryny sieci Web musiałem przejść do Plik> Kontrola źródła> Zaawansowane> Zmień kontrolę źródła i ponownie powiązać mój projekt z serwerem kontroli źródła. Oznaczało to po prostu wybranie projektu z listy i kliknięcie przycisku „Bind” obok „Refresh”. Dzięki za doskonałą odpowiedź.
Dirk Strauss
2
Świetna odpowiedź - zamiast „kliknij prawym przyciskiem myszy nazwę projektu, a następnie kliknij opcję Usuń lub Usuń”, możesz wybrać „zamiast tego wyładować projekt”, a następnie ponownie edytować plik applicationhost.config, mój był w „<ścieżka do mojego rozwiązania (.sln) plik> \. vs \ config \ applicationhost.config "(pamiętaj, że folder .vs jest ukrytym elementem, więc wybierz opcję pokazania ukrytych plików w eksploratorze plików)
Paul Gorbas
1
@PaulGorbas cieszę się, że ci pomogło. Zauważ, że nie możesz "wyładowywać" stron internetowych , działa to tylko w przypadku aplikacji internetowych.
Saeb Amini
2
Jak to zrobić dla niestandardowego portu SSL? W przypadku każdego portu oprócz 60233 w programie Internet Explorer i podobnych komunikatach w innych przeglądarkach pojawia się komunikat „Nie można wyświetlić tej strony”. Gdzie w Windows 7 wyznacza się porty SSL?
MiloDC
18

.Net Core

Dla tych, którzy przybyli tutaj i szukają tej konfiguracji w .Net core, znajduje się ona w lauchSettings.json. Po prostu edytuj port we właściwości "applicationUrl".

Plik powinien wyglądać mniej więcej tak:

{
  "iisSettings": {
    "windowsAuthentication": false,
    "anonymousAuthentication": true,
    "iisExpress": {
      "applicationUrl": "http://localhost:53950/", //Here
      "sslPort": 0
    }
  },
  "profiles": {
    "IIS Express": {
      "commandName": "IISExpress",
      "launchBrowser": true,
      "launchUrl": "index.html",
      "environmentVariables": {
        "Hosting:Environment": "Development"
      },
    }
  }
}

Możesz też użyć GUI, klikając dwukrotnie „Właściwości” projektu.

Uwaga: musiałem ponownie otworzyć VS, aby działał.

fabriciorissetto
źródło
1
Świetna odpowiedź. Ponowne uruchomienie VS zadziałało dla mnie. Najwyraźniej ProductAgentService.exeusługa BitDefender używa portu 50151, który jest w konflikcie z domyślnym portem IIS Express.
Silkfire
5
Porty SSL są ograniczone do 44300-44399. Dobrze wiedzieć.
FatAlbert
15

Kliknij prawym przyciskiem myszy projekt MVC. Przejdź do Właściwości. Przejdź do zakładki Sieć.
Zmień numer portu w adresie URL projektu. Przykład. localhost: 50645
Zmiana pogrubionego numeru 50645 na cokolwiek innego spowoduje zmianę portu, na którym działa witryna.
Naciśnij przycisk Utwórz katalog wirtualny , aby zakończyć proces.

Zobacz też: http://msdn.microsoft.com/en-us/library/ms178109.ASPX

Obraz przedstawia kartę sieci Web projektu MVC wprowadź opis obrazu tutaj

Ashley Medway
źródło
4

Jeśli chcesz tylko zmienić port, ponieważ jest już używany. Wykonaj następujące kroki.

W Visual Studio

  1. Kliknij prawym przyciskiem myszy węzeł projektu i zwolnij projekt
  2. Kliknij prawym przyciskiem myszy węzeł projektu i Edytuj plik .csproj.
  3. Wyszukaj następujące tagi i usuń je
<DevelopmentServerPort>62140</DevelopmentServerPort>
<DevelopmentServerVPath></DevelopmentServerVPath>
<IISUrl>http://localhost:62116/</IISUrl>
  1. naciśnij Ctrl + S, aby zapisać dokument
  2. Kliknij prawym przyciskiem myszy węzeł projektu i wczytaj projekt

Będzie działać, wybierając losowo inny port.

W celu uzyskania dalszych informacji. proszę kliknąć

Charlie
źródło
2

Kolejna poprawka dla tych, którzy mają zainstalowane usługi IIS:

Utwórz ścieżkę na serwerze IIS i przydziel tam swoją witrynę internetową / aplikację.

Przejdź do właściwości rozwiązania eksploratora, a następnie przed użyciem iisexpress z Visual Studio, zrób to, a nie używa własnych usług IIS.

Właściwości rozwiązania

Alex
źródło
2

Możesz najpierw uruchomić IIS express z wiersza poleceń i nadać mu port z / port: numer-portu, zobacz inne opcje .

John Henckel
źródło
2

Jeśli mówimy o witrynie internetowej, a nie aplikacji internetowej, moim problemem było to, że rzeczywisty folder .sln znajdował się gdzie indziej niż witryna, a tego nie zauważyłem. Poszukaj ścieżki .sln, a następnie folderu .vs (ukrytego).

strażnik
źródło
0

Ten sam problem w projekcie WCF w VS2017. Kiedy debuguję, wyświetla błędy, takie jak brak możliwości pobrania metadanych, ale okazuje się, że port był używany przez inny proces. Stąd mam jakiś pomysł i wreszcie wiem, gdzie jest port. Istnieją 2 miejsca: 1. C: ... do folderu rozwiązania .... vs \ config \ applicationhost.config. Wewnątrz możesz znaleźć witrynę, którą debugujesz. W obszarze usuń problem z portem. 2. C: ... do folderu projektu ... \, zobaczysz plik z nazwą projektu.csproj.user. Usuń ten plik.

Więc zamknij rozwiązanie, usuń plik użytkownika i wspomniany powyżej, a następnie ponownie otwórz rozwiązanie, VS znajdzie inny odpowiedni port dla witryny.

Huky
źródło
0

Używam VS 2019.

Jeśli Twoje rozwiązanie ma więcej niż jedną bibliotekę projektów / klas itp., możesz nie widzieć karty Sieć po kliknięciu właściwości eksploratora rozwiązań.

Kliknięcie projektu MVC, a następnie sprawdzenie właściwości spowoduje wyświetlenie zakładki internetowej, na której można zmienić port.

Shaakir
źródło
-2

Edytuj plik .sln za pomocą edytora, takiego jak notatnik.

Zastąp wszystkie porty nowym portem.

dodać
źródło
Jest to poprawne rozwiązanie, jeśli używasz projektu witryny sieci Web w starym stylu (tj. Plików ASP Classic) w VS2019. Musisz edytować plik rozwiązania, ponieważ nie ma innych stron właściwości. Mój projekt wygląda tak w pliku sln. Projekt („{E24C65DC-7377-472B-9ABA-BC803B73C61A}”) = „MyWebSitePrj”, „ localhost: 50194 ”, „{BC30BA4B-1D1D-48D0-B1E8-86CBD64611B5}”
Brad Irby
-6

Wdróż aplikację w usługach IIS z domyślnym portem. Spróbuj go debugować za pomocą programu Visual Studio. To dobra praktyka. Jeśli używasz programu Visual Studio, przez większość czasu będzie on zmieniał numer portu. Dlatego lepiej wdrożyć aplikację w usługach IIS i otworzyć to samo w programie Visual Studio i debugować.

Arjunan
źródło
Drogi Marku, wydaje mi się, że nie przeczytałeś dokładnie pytania!
Mohit
1
Ponadto tworzenie oprogramowania bezpośrednio z usługami IIS nie jest dobrą praktyką. W tym artykule MSDN wyjaśniono, kiedy podczas programowania należy używać usług IISExpress, IIS lub serwera zewnętrznego. msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx
Itanex