Visual studio отладка iis

Обновлено: 07.07.2024

Есть ли какие-то способы решить эту проблему?

Я запускаю свой проект mvc в visual studio 2013 никаких ошибок при отладке не возникает, и все проекты успешно строятся. после этого, когда visual studio запускает проект и запускает экспресс-процесс IIS, он получает сбой со следующей ошибкой, которая появляется в окне результата. Программа.

Обновление

Если вы используете Visual Studio 2013 или выше, убедитесь, что вы запустили его от имени администратора, чтобы это сработало.

Откройте файл %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (в VS2015 это может быть $(solutionDir)\.vs\config\applicationhost.config ). Внутри вы должны увидеть что-то вроде этого:

Измените bindingInformation=":8080:localhost" на bindingInformation="*:8080:*" (номер порта, 8080 в моем случае, будет отличаться.)

VisualStudio 2015 Не администратор

В директории вашего решения в файле .vs\config\applicationHost.config измените строку

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

<binding protocol="http" bindingInformation=":44302:" />

(где 44302-ваш порт)

Из командной строки администратора:

i. Разрешить неадминистратору привязываться к порту

ii. Разрешить через брандмауэр

netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow

Кроме изменения файла конфигурации iisexpress, иногда вам также необходимо выполнить команду, как показано ниже.

Будет ли IIS экспресс работать PHP в visual studio? Если да, то сможете ли вы отладить php в Visual Studio?

Как избежать запуска Visual Studio от имени администратора

Используя ответы Гаррета и @shangkeyun's, вы можете подключиться к запущенному веб-сайту без необходимости запускать Visual Studio от имени администратора:

  1. Открыть %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
  2. Поиск вашего сайта с помощью name=MySiteName
  3. Дублируйте существующий элемент <binding> в разделе <bindings> . Теперь у вас должно быть две строки с binding .
  4. Удалите часть "localhost" в bindingInformation.

Теперь это должно выглядеть так, если предположить, что порт 12345 :

Разрешить неадминистратору привязываться к порту

EDIT 2019: gregmac добавил шаг в белый список экземпляра VS. Мне это никогда не было нужно, но все равно перечисляю:

  1. netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=12345 dir=in action=allow

Поэтому я прекратил отладку, оставил свое решение открытым в Visual Studio и снова отредактировал файл application.config для новой записи. Я также просто удалил * поет и localhost полностью, так что у меня было следующее для новой записи:

<binding protocol="https" bindingInformation=":44300:" />

Некоторые из вас могут потратить много времени на модификацию и тестирование с помощью каталога %USERPROFILE%. Если вы работаете на VS debug , используйте $(solutionDir).vs\config\applicationhost.config

Перейти к applicationhost.config в Documents/IISExpress/config

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

Для достижения решения без необходимости VS2013 создавать новую запись website xml для вас при перезапуске. Вам нужно будет работать от имени администратора.

После приведенных выше конфигураций мне пришлось запустить Visual Studio в административном режиме.

enter image description here

Это то, что сработало для меня:

  • Запустите диспетчер IIS
  • Добавьте новый виртуальный каталог, который указывает на папку проектов ( C:\VSProjects в моем случае)
  • Выберите новый виртуальный каталог в диспетчере IIS. Выберите Directory Browsing из списка параметров. На правой стороне есть кнопка Enable . Нажмите на нее.

Теперь я могу получить доступ к своей папке и папке проекта в сети через mypcname\VSProjects\myProj\outputBinViewer .

У меня была очень похожая проблема с отладкой в Visual Studio Code , я решил ее, добавив:

Если вы пытаетесь достичь точки останова с помощью запроса, поступающего с другого компьютера, не забудьте проверить настройки брандмауэра (and/or antivirus)

надеюсь, это поможет

Похожие вопросы:

Вероятно, его уже спрашивали раньше. Я настроил сервер FTP в IIS на машине Windows 8, выполнив следующие действия: Установленные IIS FTP услуги Установите статический публичный IP и статический.

Я запускаю свой проект mvc в visual studio 2013 никаких ошибок при отладке не возникает, и все проекты успешно строятся. после этого, когда visual studio запускает проект и запускает.

Будет ли IIS экспресс работать PHP в visual studio? Если да, то сможете ли вы отладить php в Visual Studio?

Я не могу использовать VS2013 из-за того, что опция Visual Studio Development Server отсутствует. Вы можете использовать только IIS Express или внешний хост. Когда я использую IIS Express, я получаю.

сохранение незавершенного производства При попытке запустить веб-сайт с Visual Studio 2019 (или Visual Studio 2017, или Visual Studio 2015) я получаю ошибку: Visual Studio 2015 : Не удается.

iis7

Для тех, кто не хочет ждать официальной поддержки IIS Express в Visual Studio, есть простой способ прикрутить возможность отладки самостоятельно.

Все, что нам понадобится — это скачать WebMatrix beta, в который входит IIS Express(отдельно скачать пока нет возможности).

Ставим IIS Express


После установки WebMatrix находим и редактируем файл «My Documents\IISExpress8\config\applicationhost.config».
Переходим к 145й строке и создаем еще одно определение сайта по образу и подобию WebSite1, удалив атрибут serverAutoStart:
  1. < site name ="WebSite1" id ="1">
  2. < application path ="/">
  3. < virtualDirectory path ="/" physicalPath ="%IIS_SITES_HOME%\WebSite1" />
  4. </ application >
  5. < bindings >
  6. < binding protocol ="http" bindingInformation =":8080:localhost" />
  7. </ bindings >
  8. </ site >
  9. < site name ="VSDebug" id ="2">
  10. < application path ="/" applicationPool ="Clr4IntegratedAppPool">
  11. < virtualDirectory path ="/" physicalPath ="c:\dev\mysite" />
  12. </ application >
  13. < bindings >
  14. < binding protocol ="http" bindingInformation =":8421:localhost" />
  15. </ bindings >
  16. </ site >

Думаю значения измененных атрибутов очевидны, так что пропустим их описание.
Настало время запустить наш сервер. Сделать это можно следующей командой:

"C:\Program Files (x86)\Microsoft WebMatrix\iisexpress.exe" /site:

Вместо нужно подставить имя вашего сайта, которое вы указали в applicationhost.config. В моем случае это VSDebug. Если все сделано правильно, то сервер запустится и ваш сайт будет доступен.

Настраиваем Visual Studio

Запускаем студию и загружаем в нее наш сайт. Делаем правый клик по проекту, выбираем Properties и переходим на таб Web. Здесь нам нужно выбрать Start External Program и указать команду запуска нашего сервера.


Ниже, в этом же окне, выбираем Use Custom Web Server и снова вводим URL сайта.


В разделе Debuggers снимаем все флажки, т.к. студия будет пытаться приаттачиться к IIS и не позволит нам выполнять отладку.


Теперь сохраняем свойства и жмем F5, чтобы запустить отладку. Открыть сайт в браузере можно воспользовавшись иконкой IIS Express в трее.

Оглавление

Вводные сведения:

Введение:

В Visual Studio можно отлаживать приложение тремя разными способами. Они следующие:
• Внутренний отладчик Visual Studio
• Локальная отладка на IIS
• Удаленная отладка на IIS

Внутренний отладчик Visual Studio:


Рисунок: Блок-схема внутреннего отладчика Visual Studio

Локальная отладка IIS:

Ей посвящена прошлая статья. Чтобы освежить детали, весь сценарий объясняется с помощью следующей схемы (хотя в этом не было нужды, так как сценарий уже был изложен в прошлой статье, все же она используется только для сопоставления с удаленной отладкой).


При локальной отладке на IIS, IIS должен быть установлен в локальной системе, где установлен visual studio. Для отладки приложения, размещенного на IIS из visual studio, нужно прикрепить работающий процесс (w3wp.exe) внутри visual studio. После этого можно будет запустить отладку веб-приложения.

Удаленная отладка IIS:

Это главная тема, рассматриваемая в данной статье. Это одна из лучших функций, очень полезная, когда в локальной системе не установлен сервер IIS, или когда приходится хранить приложения в централизованном месте. Сценарий выполняется, когда вы имеете код приложения в вашей системе и полную сборку, развернутую на другом сервере IIS. Схемы ниже показывают общую схему удаленной отладки.


Удаленная отладка с помощью Visual studio и удаленного IIS очень легко настраивается. Инструмент, используемый для настройки и конфигурирования процесса, называется "msvsmon.exe". Ниже описаны все до единого шаги по запуску, конфигурированию инструмента msvsmon и отладке приложения. Но перед этим рассмотрим, зачем нужна удаленная отладка.

Зачем нужна удаленная отладка

Перед переходом к деталям нужно разобраться, когда надлежит использовать удаленную отладку,
• На локальном сервере разработки не установлен IIS.
• Сервер разработки и сервер компоновки/выпуска/хостинга различаются
• Приложение размещено в централизованном месте.

Инструмент удаленной отладки

Инструмент, используемый для удаленной отладки приложения ASP.Net, называется "Msvsmon.exe". Инструмент удаленной отладки (Msvsmon.exe) – маленькое приложение на базе windows, которое Visual Studio 2005 применяет для удаленной отладки. Оно имеет очень простой пользовательский интерфейс, упрощающий настройку и конфигурирование. Во время удаленной отладки Visual Studio 2005 работает на одном компьютере, а инструмент удаленной отладки работает на удаленном компьютере вместе с приложением, которое вы отлаживаете.


Если нужно отладить приложение, размещенное на удаленном IIS, необходимо запустить msvsmon.exe на удаленном сервере, и наша система разработки – хозяин отладчика, в котором мы будем отлаживать наш клуб.

Запуск msvsmon.exe

Пути к установленному Msvsmon.exe следующие:
• Install path\Microsoft Visual Studio 8\Common7\IDE\Remote Debugger\x86

Сначала нужно запустить приложение из местоположения, и мы получим следующий экран,


Рисунок: Первый запуск msvsmon.exe

Конфигурирование режима проверки подлинности

Конфигурирование инструмента msvsmon очень простое. Главная конфигурация требует режим проверки подлинности (аутентификации). Msvsmon поддерживает два типа аутентификации
• Аутентификация Windows
• Без аутентификации

Аутентификация Windows

Msvsmon обеспечивает высокий уровень безопасности в режиме аутентификации windows. Пользователь, желающий отлаживать приложение удаленно, должен быть опознан, то есть он должен иметь достаточно разрешений на получение доступа к средству отладки из удаленной системы. Чтобы настроить режим аутентификации Windows, нужно перейти в "Инструмент" > "Параметры". Появится следующее окно,


Рисунок: Настройка и конфигурирование параметров безопасности

В нем есть кнопка разрешения наряду с переключателем аутентификации windows. Используя их, можно давать разрешения любому пользователю, являющемуся членом данной группы windows. Если нажать на кнопку разрешения, появится следующее окно:


Рисунок: Добавление пользователя для аутентификации windows

По умолчанию администратор должен иметь разрешение на удаленную отладку, можно использовать кнопку добавления, чтобы добавить нового пользователя, а также можно дать разрешение на доступ к отладке или запретить отладку любому пользователю. Например, я добавил себя, нажав на кнопку “Добавить” и получив контроль доступа.


Рисунок: Добавление пользователя для аутентификации windows

Теперь я дал себе разрешение на удаленную отладку (из хозяина (хоста) отладчика).


Рисунок: Разрешение на отладку для выбранного пользователя

Аналогично можно выбрать любого пользователя из Active Directory и можно отклонить запрос на удаленную отладку, несмотря на то, что пользователь - прошедший проверку пользователь Windows.

Способ удаленной отладки при режиме аутентификации windows описан в разделе прикрепления процесса.

Без аутентификации


В данном режиме аутентификации отсутствует защита. Любой может отлаживать удаленно, если режим аутентификации установлен в "без аутентификации". Так как данный режим отладки абсолютно не защищен, поэтому он должен использоваться только в защищенной сети.


Рисунок: Конфигурирование режима без аутентификации

В следующем разделе описано, как прикреплять процесс для удаленной отладки в режимах Windows и без аутентификации.

Прикрепление процесса из удаленной системы

Теперь удаленный отладчик готов принять новое подключение, чтобы начать удаленную отладку. Выше мы разобрались, как конфигурировать msvsmon для режимов windows и без аутентификации. Теперь рассмотрим, как соединиться с ним и запустить отладку.

Перед тем, как сделать то, что нам нужно, мы создали веб-приложение и разместили его на IIS, где работает msvsmon. Нам необходимо подключиться к нему из нашей локальной системы, где находится наш код. Рассмотрим вариант режима аутентификации windows

Прикрепление процесса – режим аутентификации Windows

Сначала нужно открыть приложение из visual studio в нашей системе разработки. Теперь нам нужно прикрепить процесс с удаленного сервера. Перейдите в Инструмент > Прикрепить процесс


Рисунок: Прикрепление процесса из Visual Studio

После нажатия на "Прикрепить процесс" получим следующее окно.


Рисунок: Стандартный список процессов

Сейчас оно показывает все процессы, в данный момент выполняющиеся в системе. Теперь нам нужно подключить его к удаленной системе. Сейчас я уже запустил msvsmon с именем "abhijit.jana", и он ожидает нового подключения.


Рисунок: msvsmon выполняется на удаленном хосте

Сейчас я собираюсь соединиться с удаленной системой из моей локального ЧЕГО? интегрированной среды разработки visual studio. Что нужно сделать? Нужно указать имя удаленного сервера в поле “Уточнитель” в окне прикрепления процесса.


Рисунок: Соединение с удаленным хостом и получение списка процессов


Теперь наше приложение готово к отладке. Установите точку останова/остановки в вашем коде и приступайте к отладке. Здесь наш вебсайт [размещено на удаленном сервере IIS], имеющий серверную кнопку и приложение, можно отлаживать по нажатию кнопки.


Рисунок: Подключение к сайту по URL хоста

Теперь процесс прикреплен в/к нашей visual studio, и я установил точку останова/остановки на методе нажатия кнопки. Здесь показан результат.


Рисунок: Отладчик в точке останова/остановки

Приступайте к отладке с удаленного сервера. Теперь рассмотрим способ удаленной отладки в режиме без аутентификации.

Прикрепление процесса – Режим без аутентификации

Это очень похоже на прикрепление процесса с аутентификацией windows. Уже было рассмотрено, как конфигурировать режим без аутентификации в удаленном отладчике. Нужно прикрепить процесс аналогичным образом, как было сказано. Есть несколько изменений. Нужно выбрать режим передачи -Удаленный (только собственный, без аутентификации) [ смотрите снимки экрана] и нужно указать уточнитель "abhijit.jana: 4015". Посмотрите на снимки экрана:


Рисунок: Прикрепление процесса в режиме без аутентификации


На этом закончено объяснение того, как сделать отладку вашего приложения с удаленного сервера IIS в режимах windows и без аутентификации.

Отладка для нескольких пользователей

Это одна из самых потрясающих функций инструмента Msvsmon. Инструмент отладочного монитора Msvsmon позволяет нескольким пользователям отлаживать одновременно. Каждый экземпляр удаленного отладчика имеет уникальное имя сервера. Уже было показано, что имена сервера изменяемые, поэтому можно дать экземпляру удаленного отладчика любое имя сервера. Теперь несколько пользователей смогут подключаться к одному и тому же серверу


Рисунок: Общая блок-схема из нескольких экземпляров отладчика

Заключение:

В заключение сделаем краткие выводы. msvsmon – утилита, предоставляющая средство отладки приложения, размещенного на удаленном сервере IIS. Она предоставляет два типа режима аутентификации, Windows и режим без аутентификации. В случае режима аутентификации windows пользователь должен иметь разрешение на доступ к экземпляру удаленного отладчика, но, с другой стороны, режим без аутентификации не требует полномочий доступа.

есть ли какие-либо способы решить эту проблему?

обновление

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

Откройте %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config (в VS2015 это может быть $(solutionDir)\.vs\config\applicationhost.config файл). Внутри ты должен увидеть нечто подобное.:

изменить bindingInformation=":8080:localhost" to bindingInformation="*:8080:*" (номер порта 8080 в моем случае отличаться.)

VisualStudio 2015 Non-Admin

в вашем каталоге решений, в файле .vs\config\applicationHost.config изменить строку

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

<binding protocol="http" bindingInformation=":44302:" />

(где 44302 ваш порт)

из командной строки администратора:

i. Включить не-admin для привязки к порту

ii. Разрешить через брандмауэр

netsh advfirewall firewall add rule name="IISExpress visualstudio app" protocol=tcp localport=44302 dir=in action=allow

за исключением изменения файла конфигурации iisexpress, иногда вам также нужно запустить команду, как показано ниже.

поэтому я прекратил отладку, держал мое решение открытым в Visual Studio, и отредактировал application.config файл снова для новой записи. Я просто убрал * поетому и localhost полностью, поэтому у меня было следующее для новой записи:

<binding protocol="https" bindingInformation=":44300:" />

как избежать запуска Visual Studio от имени администратора

используя как Гаррета и @shangkeyun это вы можете подключиться к запущенному веб-сайту без необходимости запуска Visual Studio в качестве пользователя администратора:

  1. открыть %USERPROFILE%\My Documents\IISExpress\config\applicationhost.config
  2. поиск вашего сайта с помощью name=MySiteName
  3. дублировать существующие <binding> элемент . Теперь у вас должно быть две строки с binding .
  4. удалите часть "localhost" в bindingInformation.

теперь это должно выглядеть так, предполагая, что порт 12345 :

удалите все ограничения брандмауэра, запустив следующий cmd в качестве администратора:

перейти к applicationhost.config в документах/IISExpress / config

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

для достижения решения без VS2013 создайте новую запись xml веб-сайта для вас при перезапуске. Вам нужно будет запустить от имени администратора.

вот что сработало для меня:

  • запустите диспетчер IIS
  • Добавить новый виртуальный каталог, который указывает на папку проектов ( C:\VSProjects в моем случае)
  • выберите новый виртуальный каталог в диспетчере IIS. Выберите Directory Browsing из списка вариантов. С правой стороны есть . Щелкнуть его.

теперь я могу получить доступ к моей папке и проекту bin в сети через mypcname\VSProjects\myProj\outputBinViewer .

после вышеуказанных конфигураций мне пришлось запустить Visual Studio в административном режиме.

enter image description here

некоторые из вас могут потратить много времени на изменение и тестирование с помощью каталога %USERPROFILE%. Если вы работаете на VS debug используйте $(solutionDir).vs\config\applicationhost.config

была очень похожая проблема отладки в Код Visual Studio, я решил это, добавив:

по-видимому, по умолчанию он связывает протокол http с "localhost: 5000", поэтому он работает с localhost в а не с ip-адрес - ни удаленно, ни локально.

Если вы пытаетесь попасть в точку останова по запросу, поступающему с другого компьютера, не забудьте проверить настройки брандмауэра (и / или антивируса)

Читайте также: