Как изменить порт IIS Express для сайта


109

Я хочу изменить номер порта, на котором работает мой веб-сайт, во время отладки из Visual Studio. Я использую Visual Studio 2012, и я использую ASP.NET MVC 4 для своих проектов. Я хочу изменить порт. Случайный порт или фиксированный, кто угодно будет работать, просто хочет изменить порт.

Ответы:


128

Чтобы указать порт для проекта веб-приложения, использующего IIS Express

  1. В обозревателе решений щелкните правой кнопкой мыши имя приложения и выберите «Свойства». Щелкните вкладку Интернет.

  2. В разделе «Серверы» в разделе «Использовать локальный веб-сервер IIS» в поле «URL-адрес проекта» измените номер порта.

  3. Справа от поля «URL-адрес проекта» нажмите «Создать виртуальный каталог», а затем нажмите «ОК».

  4. В меню «Файл» щелкните «Сохранить выбранные элементы».

  5. Чтобы проверить изменение, нажмите CTRL + F5, чтобы запустить проект. Новый номер порта появится в адресной строке браузера.

Из раздела Как: указать порт для сервера разработки ( здесь резервная копия archive.org ).


14
Это не работает для веб-сайтов. Только для проектов веб-приложений.
Supersharp 01

3
Здесь нет веб-вкладки ... Можно подумать, что в 2017 году это больше не будет проблемой .. Это или, по крайней мере, мы должны иметь возможность менять порты, не прибегая к волшебству
calcazar

Вариант Visual Studio 2015 не существует (пустой веб-сайт ASP.NET) .. как сделать?
KingRider

Я делал все это, кроме нажатия кнопки «Создать виртуальный каталог». Это сделало другое; теперь это работает. Но зачем это нужно?
Род

Что ж, если вы сделаете это, вы больше не используете IIS Express, а будете использовать локальный IIS. Так что просто перейдите на вкладку «Интернет» в свойствах проекта и отредактируйте порт так, как вам нужно.
VladT 03

68

Вот более ручной метод, который работает как для проектов веб- сайтов, так и для проектов веб-приложений . (вы не можете изменить URL-адрес проекта из проектов Visual Studio для веб-сайтов.)

Проекты веб-приложений

  1. В обозревателе решений щелкните проект правой кнопкой мыши и выберите « Выгрузить проект» .

  2. Перейдите к файлу IIS Express ApplicationHost.config . По умолчанию этот файл находится в:

    %userprofile%\Documents\IISExpress\config

    В последних версиях Visual Studio и проектах веб-приложений этот файл находится в папке решения [Solution Dir]\.vs\config\applicationhost.config(обратите внимание, что папка .vs является скрытым элементом).

  3. Откройте файл ApplicationHost.config в текстовом редакторе. В <sites>разделе найдите название своего сайта. В <bindings>разделе вашего сайта вы увидите такой элемент:

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

    Измените номер порта (56422 в приведенном выше примере) на любой, какой хотите. например:

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

    Бонус: вы даже можете привязать к другому имени хоста и делать такие крутые вещи, как:

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

    а затем карту , mysite.devчтобы 127.0.0.1в вашем hostsфайле, а затем открыть свой сайт от « http://mysite.dev »

  4. В обозревателе решений щелкните проект правой кнопкой мыши и выберите " Перезагрузить проект" .

  5. В обозревателе решений щелкните проект правой кнопкой мыши и выберите «Свойства».

    • Выберите вкладку Интернет.

    • В разделе «Серверы» в разделе «Использовать локальный веб-сервер IIS» в поле «URL-адрес проекта» введите URL-адрес, соответствующий имени хоста и порту, которые вы ввели ранее в файле ApplicationHost.config .

    • Справа от поля «URL-адрес проекта» щелкните «Создать виртуальный каталог». Если вы видите сообщение об успешном выполнении, значит, вы выполнили действия правильно.

    • В меню «Файл» щелкните «Сохранить выбранные элементы».

Веб-проекты

  1. В обозревателе решений щелкните правой кнопкой мыши имя проекта и выберите команду « Удалить» или « Удалить» ; не волнуйтесь, это удалит проект из вашего решения, но не удалит соответствующие файлы на диске.

  2. Выполните шаг 2 выше для проектов веб-приложений.

  3. В обозревателе решений щелкните решение правой кнопкой мыши, выберите «Добавить», а затем выберите « Существующий веб-сайт ...» . В диалоговом окне «Добавить существующий веб-сайт» убедитесь, что выбрана вкладка «Локальный IIS». В разделе «Сайты IIS Express» выберите сайт, для которого вы изменили номер порта, затем нажмите «ОК».

Теперь вы можете получить доступ к своему сайту с нового имени хоста / порта.


1
Круто, именно то, что было нужно. Пришлось порыться в поисках рабочего порта, но это помогло, спасибо.
Hobwell

1
Спасибо, Саеб. Это прекрасно работает. Просто обратите внимание ... Я использую систему управления версиями, и после добавления проекта моего веб-сайта мне пришлось перейти в меню «Файл»> «Управление версиями»> «Дополнительно»> «Изменить систему управления версиями» и повторно привязать свой проект к серверу управления версиями. Это означало просто выбрать проект в списке и нажать кнопку «Привязать» рядом с «Обновить». Спасибо за отличный ответ.
Дирк Штраус

2
Отличный ответ - вместо «щелкните правой кнопкой мыши имя проекта, а затем нажмите« Удалить »или« Удалить », вы можете выбрать« вместо этого выгрузить проект », а затем снова отредактировать свой applicationhost.config, мой был в« <путь к моему решению (.sln) file> \. vs \ config \ applicationhost.config "(обратите внимание, что папка .vs является скрытым элементом, поэтому выберите параметр для отображения скрытых файлов в проводнике файлов)
Пол Горбас,

1
@PaulGorbas рад, что помог тебе. Обратите внимание, что вы не можете «выгружать» веб-сайты , это работает только для веб-приложений.
Саеб Амини

2
Как заставить это работать для настраиваемого порта SSL? Для любого порта, кроме 60233, я получаю «Эта страница не может отображаться» в Internet Explorer и подобные сообщения в других веб-браузерах. Где в Windows 7 назначаются порты SSL?
MiloDC

18

.Net Core

Для тех, кто пришел сюда и искал эту конфигурацию в ядре .Net, она находится в lauchSettings.json. Просто отредактируйте порт в свойстве "applicationUrl".

Файл должен выглядеть примерно так:

{
  "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"
      },
    }
  }
}

Или вы можете использовать графический интерфейс, дважды щелкнув «Свойства» вашего проекта.

Примечание: мне пришлось заново открыть VS, чтобы он заработал.


1
Блестящий ответ. У меня сработал перезапуск VS. Очевидно, ProductAgentService.exeслужба BitDefender использует порт 50151, который конфликтует с портом по умолчанию IIS Express.
silkfire

5
Порты SSL ограничены 44300-44399. Было бы неплохо узнать.
FatAlbert

16

Щелкните правой кнопкой мыши свой проект MVC. Зайдите в Свойства. Перейдите на вкладку Интернет.
Измените номер порта в URL-адресе проекта. Пример. localhost: 50645
Изменение выделенного жирным шрифтом числа 50645 на любое другое изменит порт, на котором работает сайт.
Нажмите кнопку « Создать виртуальный каталог» , чтобы завершить процесс.

См. Также: http://msdn.microsoft.com/en-us/library/ms178109.ASPX

Изображение показывает веб-вкладку проекта MVC. введите описание изображения здесь


5

Если вы просто хотите изменить порт, потому что он уже используется. Выполните следующие шаги.

В Visual Studio

  1. Щелкните правой кнопкой мыши узел проекта и выгрузите проект.
  2. Щелкните правой кнопкой мыши узел проекта и отредактируйте файл .csproj.
  3. Найдите следующие теги и удалите их
<DevelopmentServerPort>62140</DevelopmentServerPort>
<DevelopmentServerVPath></DevelopmentServerVPath>
<IISUrl>http://localhost:62116/</IISUrl>
  1. нажмите Ctrl + S, чтобы сохранить документ
  2. Щелкните правой кнопкой мыши узел проекта и загрузите проект.

Он будет работать при случайном выборе другого порта.

Для дополнительной информации. пожалуйста, нажмите


2

Еще одно исправление для тех, у кого установлен IIS:

Создайте путь на сервере IIS и разместите там свой веб-сайт / приложение.

Перейдите к свойствам решения проводника, затем перед использованием iisexpress из Visual Studio сделайте так, чтобы vs использовал ваш личный IIS.

Приличия решения



2

Если мы говорим о веб-сайте, а не о веб-приложении, моя проблема заключалась в том, что фактическая папка .sln находилась где-то еще, а не на веб-сайте, и я этого не заметил. Найдите путь .sln, а затем папку .vs (скрытую).


0

У меня такая же проблема с проектом WCF на VS2017. Когда я отлаживаю, он выдает ошибки, например, не могу получить метаданные, но оказывается, что порт был использован другим процессом. Отсюда я получил некоторое представление и наконец выяснил, где хранился порт. Есть 2 места: 1. C: ... в папку вашего решения .... vs \ config \ applicationhost.config. Внутри вы можете найти сайт, который вы отлаживаете. В разделе удалите проблему с портом. 2. C: ... в папку вашего проекта ... \, вы увидите файл ProjectName.csproj.user. Удалите этот файл.

Итак, закройте решение, удалите и пользовательский файл, упомянутый выше, затем снова откройте решение, VS найдет другой подходящий порт для сайта.


0

Я использую VS 2019.

если в вашем решении несколько библиотек проектов / классов и т. д., вы можете не увидеть вкладку «Интернет» при нажатии на свойства обозревателя решений.

Если щелкнуть проект MVC и затем проверить свойства, откроется веб-вкладка, где вы можете изменить порт.


-2

Отредактируйте файл .sln с помощью редактора, например блокнота.

Замените все порты новым портом.


Это подходящее решение, если вы используете старый проект веб-сайта (например, для файлов ASP Classic) в VS2019. Вы должны отредактировать файл решения, потому что других страниц свойств нет. Мой проект выглядит так в файле sln. Project ("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "MyWebSitePrj", " localhost: 50194 ", "{BC30BA4B-1D1D-48D0-B1E8-86CBD64611B5}"
Брэд Ирби,

-6

Разверните свое приложение в IIS с портом по умолчанию. Попробуйте отладить его с помощью Visual Studio. Это хорошая практика. Если вы используете Visual Studio, он будет постоянно менять номер порта. Так что лучше сначала разверните приложение в IIS, откройте его в Visual Studio и выполните отладку.


Дорогой Марк, я не думаю, что вы внимательно прочитали вопрос!
Mohit

2
Кроме того, разработка непосредственно против IIS не является хорошей практикой. В этой статье MSDN объясняется, когда следует использовать IISExpress, IIS или внешний сервер при разработке. msdn.microsoft.com/en-us/library/58wxa9w5(v=vs.120).aspx
Itanex
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.