Не удалось запустить веб-сервер IIS Express, не удалось зарегистрировать URL-адрес, доступ запрещен

Некоторые веб-проекты вызывают у меня проблемы, а другие работают нормально. Я решил сосредоточиться на одном из проблемных. Я использую Visual Studio 2013 в Windows 7. Я думаю, что я запускаю его как администратор, заголовок окна говорит PROJECT NAME - Microsoft Visual Studio (Administrator).

Когда я пытаюсь запустить проект, я получаю всплывающее сообщение:

Unable to launch the IIS Express Web server.

Failed to register URL "http://localhost:62940/" for site "SITE NAME"
application "/". Error description: Access is denied. (0x80070005).

Это не кажется полностью необычным, но я пробовал много предложений без везения:

  • Удалено %userprofile%\Documents\IISExpress\, попытался выполнить.

  • netsh http add urlacl url=http://localhost:62940/ user=everyone, перезагрузился и попытался запустить. (На самом деле user=Alla со шведской Windows).

  • netsh http delete urlacl url=http://localhost:62940/, перезагрузился и сменился с <binding protocol="http" bindingInformation="*:62940:localhost /> на <binding protocol="http" bindingInformation="*:62940:/> в %userprofile%\Documents\IISExpress\config\applicationhost.config и попытался выполнить. (Он изменил сообщение об ошибке, чтобы сказать ... URL "http://*:62940/" ....

  • Переустановка IIS 8.0 Express

  • Переустановлена ​​Visual Studio 2013

Я на своем конце, что я делаю неправильно?

Изменить 1: Если я изменил порт проекта (например, до 55555), он начнется... Это не является желательным решением, так как эти проекты работают несколькими людьми. Может быть, порт заблокирован чем-то еще? Если да, есть ли простой способ проверить, что?

Изменить 2: Порт 62940 кажется бесплатным. Запуск netstat не отображает приложение, слушающее его. Что-то еще должно быть неправильно.

Изменить 3: Я попытался запустить проект сегодня, не трогая его в течение нескольких месяцев. Это сработало, но я не знаю почему.

Ответ 1

Я решил ошибку, изменив порт для проекта.

Я сделал следующие шаги:

1 - Щелкните правой кнопкой мыши по проекту.
2 - Перейти к свойствам.
3 - Перейдите на вкладку Сервер.
4 - В разделе вкладки измените URL проекта для другого порта, например 8080 или 3000.

Удачи!

Ответ 2

Идеальный способ разобраться в этом - использовать значок на панели задач IIS Express, чтобы остановить веб-сайт, вызывающий проблему. Для этого нажмите маленькую стрелку вверх в правом конце панели задач и щелкните правой кнопкой мыши значок IIS Express. Появится маленькое окно с веб-сайтами, на которых в данный момент работает IIS Express...

IIS Express pop up

Если вы щелкнете по одному из пунктов в разделе "Просмотр сайтов", у вас будет возможность остановить этот сайт. Или вы можете щелкнуть пункт "Выход" в нижней части окна, чтобы остановить все веб-сайты.

Это должно позволить вам отлаживать в Visual Studio. Когда вы снова начнете отладку, IIS Express автоматически перезапустит веб-сайт и сможет выделить порт.

Если это не удается, вы должны сделать это грязным путем. Откройте диспетчер задач Windows и убейте процесс Microsoft.VisualStudio.Web.Host.exe*32, после чего вы сможете нормально запустить проект. Обратите внимание, что это полностью убьет IIS Express, а это означает, что все веб-сайты будут остановлены, поэтому вам придется перезапустить каждый из них в VS, если вы хотите отлаживать любые другие. Сначала попробуйте метод всплывающих значков, так как он чище и безопаснее.

Не знаю, отвечает ли это на вашу проблему, но это работает для меня.

Обновление. Спасибо JasonCoder (см. Комментарий ниже) за добавление этого в Win10, процесс Microsoft.VsHub.Server.HttpHost.exe

Ответ 3

При использовании Visual Studio 2015 решение может немного отличаться от предыдущих ответов. VS2015 создает скрытую папку .vs в той же папке, что и файл решения. В этом разделе находится папка config, содержащая applicationhost.config. Удалив этот файл (или всю папку .vs), а затем запустив VS2015, он сможет исправить эту ошибку.

Ответ 4

попробуйте (как повышенный администратор)

netsh http delete urlacl url=http://*:62940/

Ответ 5

Получил эту ошибку и в последнее время. Пробовал все вышеперечисленные исправления, но никто не работал.

Чтобы отключить его, введите services.msc в командной строке, затем щелкните правой кнопкой мыши и отключите Общий доступ к подключению Интернета. Я также отредактировал его свойства, чтобы отключить его при запуске. Теперь мой вид выглядит следующим образом: снимок экрана для захвата услуг.

Ответ 6

У меня была аналогичная проблема. Я не совсем уверен, как описать фактическую ошибку, но похоже, что имя хоста в резервировании неверно. Попробуйте это в командной строке с повышенными правами...

netsh http delete urlacl url=http://localhost:62940/

... затем...

netsh http add urlacl url=http://*:62940/ user=everyone

и перезагрузите свой сайт. Он должен работать.

Ответ 7

Это произошло со мной, когда я пытался получить доступ к моему сайту из удаленного места:

Сначала приложениеhost.config(VS2015) содержало стандарт:

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

Чтобы получить доступ к моему сайту из удаленного места в сети, я добавил (шаг 1):

<binding protocol="http" bindingInformation="*:64376:192.168.10.132" />

Затем я вошел в CMD с правами администратора (шаг 2):

netsh http add urlacl url=http://*:64376/ user=Everyone

Как шаг 3, я добавил его в брандмауэр.

netsh advfirewall firewall add rule name="IISExpressWeb" dir=in protocol=tcp localport=64376 profile=private,domain remoteip=localsubnet action=allow

Затем я получил эту ошибку при попытке снова запустить решение.

Решение: Я, кажется, все сделал правильно, но это не сработало, пока я не запустил netsh также для существующего правила localhost:

netsh http add urlacl url=http://localhost:64376/ user=Everyone

Теперь он снова работает.

Ответ 8

Я закончил с очисткой файла проекта (csproj) и applicationhost.config(iis express) со всеми записями, касающимися конфигурации iis express. После этого он работал.

Ответ 9

После успешного выполнения ряда предложенных решений я просто перезагрузил свой компьютер. После этого проблема больше не возникала.

Ответ 10

Я столкнулся с тем же сообщением об ошибке, но похоже, что оно было создано из IIS Express. Эта статья помогла мне решить ее

TL; DR

Выполните следующую команду из командной строки Administrative:

> netsh http add iplisten ipaddress=::

Ответ 11

Если у вас есть это после установки Visual Studio 2015, и вы можете видеть сообщения об ошибках в журнале системных событий, например: Unable to bind to the underlying transport for [::]:{your_port}. . The IP Listen-Only list may contain a reference ..., возможно, вам не хватает записи в реестре.

Запустите это в командной строке администратора: netsh http add iplisten ipaddress=::, чтобы исправить его.

Я нашел решение, описанное подробно здесь

Ответ 12

После того, как все шаги, перечисленные здесь, не удались для меня, я начал работать, запустив VS2015 в качестве администратора.

Ответ 13

Это случилось со мной в Windows 10 и VS 2013. По-видимому, существует максимальный номер порта IIS Express. Порты выше 62546 не работают для меня.

Ответ 14

Ошибка может быть решена, если вы просто перезапустите Visual Studio. Он имеет тот же эффект, что и перезапуск процесса Microsoft.VisualStudio.Web.Host.exe * 32.

Ответ 15

Моя проблема оказалась в том, что у меня был SSL Enabled в настройках проекта. Я просто отключил это, потому что я не требовал SSL для локального запуска проекта.

В Visual Studio 2015:

  • Выберите проект в обозревателе решений.
  • В окне "Свойства" установлено значение "Разрешено SSL" для "Неверно".
  • Мне удалось запустить проект.

В моей ситуации я получал сообщение об использовании порта 443, потому что это был порт, установленный на URL-адресе SSL для проекта.

Ответ 16

Перейдите в проект "Свойства" = > "Веб", а в разделе "Серверы" измените порт на другое, которое не используется и сохранит его. Вам будет предложено создать виртуальный каталог и нажать "Да". Теперь запустите проект, и он будет работать сейчас.

Ответ 17

В моем случае он работал сначала, а через некоторое время перестал работать, и IIS Express сообщил, что порт используется.
netstat -ab показал, что Chrome использует порт. После того, как я ушел из Chrome, он снова начал работать.
Однако я не уверен, почему Chrome будет занимать этот порт.

Ответ 18

Это случилось со мной в Windows 7 и VS 2013 во время просмотра проекта в браузере после сборки. Мне только пришлось закрыть браузер "Chrome", а затем убедиться, что порт не используется в моих сетевых действиях с помощью некоторой утилиты (Kaspersky), а затем снова попытался и без проблем работал.

Ответ 19

В Visual Studio 2015:

  • Найдите свою стартовую страницу в своем проекте (например: mypage.aspx) и правильно нажмите здесь.
  • Нажмите "Установить как стартовую страницу".
  • Щелкните правой кнопкой мыши по проекту.
  • Нажмите "Свойства".
  • Нажмите вкладку "Веб" слева.
  • В URL проекта введите другой порт, например: http://localhost:1234/
  • В действии "Начало" выберите "Конкретная страница: mypage.aspx" или выберите "Конкретный URL: http://localhost:1234/mypage.aspx?myparam=xxx

Ответ 20

Я пишу это для информации.

Удалить файл в проекте.

После очистки > Сборкa > Начало Proje

Ответ 21

netstat -abn я заметил, что программное обеспечение "Duet Display" резервирует тысячи портов в диапазоне ~ 51000.

Закрытие это решило мою проблему.

Ответ 22

Да, я согласен, лучшие ответы действительно про решения,

вот один для промежуточных,

Обозреватель решений

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

Снова щелкните правой кнопкой мыши и выберите Edit ProjectName.csproj.

удалить эти 3 строки

<DevelopmentServerPort>0</DevelopmentServerPort>
<DevelopmentServerVPath>/</DevelopmentServerVPath>
<IISUrl>http://localhost:62940/</IISUrl>

Сохраните и перезагрузите проект, и все готово

Ответ 23

Иногда эта ошибка может быть другой версией Visual Studio, запущенной на той же машине.

Ответ 24

Похоже, у всех есть свои проблемы Просто поделившись тем, что я сделал, чтобы исправить эту проблему в VS2015 (Windows 8.1), мое решение имеет 6 веб-сайтов (а не веб-приложений).

  • Откройте файл решения *.sln
  • Изменение строки файла решения VWDPort = "34781" (сделайте его уникальным в своем решении, если у вас больше что 1 веб-сайт, я сделал +2) в блокноте.

См. пример файла решения ProjectSection (WebsiteProperties):

Project("{E24C65DC-7377-472B-9ABA-BC803B73C61A}") = "BOSTONBEANCOFFEE.COM", "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM", "{5106A8F5-401B-4907-981C-F37784DC4E9D}"
ProjectSection(WebsiteProperties) = preProject
    SccProjectName = ""$/PrismRMSystem/VS2012/WebOfficeV4.root/WebOfficeV4", IPYHAAAA"
    SccAuxPath = ""
    SccLocalPath = "..\.."
    SccProvider = "MSSCCI:Microsoft Visual SourceSafe"
    TargetFrameworkMoniker = ".NETFramework,Version%3Dv4.0"
    ProjectReferences = "{04e527c3-bac6-4082-9d39-aad8771b368e}|YBTools.dll;{5d52eaec-42fb-4313-83b8-69e2f55ebf14}|AuthorizeNet.dll;{d8408f53-8f1e-4a71-8b05-76023b09b716}|AuthorizeNet.Helpers.dll;{77ebd08a-de0f-4793-b436-fad6980863e6}|WEBCUSTCONTROLS.dll;"
    Debug.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"
    Debug.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
    Debug.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"
    Debug.AspNetCompiler.Updateable = "true"
    Debug.AspNetCompiler.ForceOverwrite = "true"
    Debug.AspNetCompiler.KeyFile = "Key\StrongKey.snk"
    Debug.AspNetCompiler.DelaySign = "false"
    Debug.AspNetCompiler.AllowPartiallyTrustedCallers = "false"
    Debug.AspNetCompiler.FixedNames = "true"
    Debug.AspNetCompiler.Debug = "True"
    Release.AspNetCompiler.VirtualPath = "/BOSTONBEANCOFFEE.COM"
    Release.AspNetCompiler.PhysicalPath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
    Release.AspNetCompiler.TargetPath = "PrecompiledWeb\BOSTONBEANCOFFEE.COM\"
    Release.AspNetCompiler.Updateable = "true"
    Release.AspNetCompiler.ForceOverwrite = "true"
    Release.AspNetCompiler.KeyFile = "Key\StrongKey.snk"
    Release.AspNetCompiler.DelaySign = "false"
    Release.AspNetCompiler.AllowPartiallyTrustedCallers = "false"
    Release.AspNetCompiler.FixedNames = "true"
    Release.AspNetCompiler.Debug = "False"      
    VWDPort = "34781"
    SlnRelativePath = "Source_WebOfficeV4\BOSTONBEANCOFFEE.COM\"
EndProjectSection

В моем случае я попытался изменить URL-адрес из свойств проекта, перезагрузить VS, перезагрузить компьютер, ничто не помогло мне, только эта обработка файлов SLN устранила мою проблему.

Ответ 25

Для меня эта проблема была полностью связана с нарушенной установкой инструментов Oracle ODP для VS. Я удалил и переустановил, и все снова работало.

Ответ 27

В VS2017. Мне пришлось отредактировать мой .sln файл и пришлось обновить параметр VWDPort = "5010. Ни одно из других решений, размещенных здесь, не работало.

Ответ 28

Я решил эту проблему, убив все экземпляры iexplorer и iexplorer * 32. Похоже, что Internet Explorer все еще находился в памяти, открывая порт, хотя окно приложения было закрыто.

Ответ 29

В моем случае я установил параметр Переопределить корневой URL-адрес приложения на вкладке PropertiesWeb. Я использовал это ранее, когда я запускал VS в качестве администратора, но теперь, когда я запускаю его в учетной записи, отличной от admin, это вызывает ошибку.

Ответ 30

У меня была эта проблема с JetBrains Rider, специально для портов 80 и 90 бит, он работал с другими портами, а также с Visual Studio.

после запуска от имени администратора это решило проблему.