Как подключить отладчик к IIS вместо ASP.NET Development Server? - PullRequest
66 голосов
/ 17 октября 2008

У меня есть веб-сайт ASP.NET, и когда я нажимаю клавишу F5, он автоматически подключается к серверу разработки ASP.NET. Как вместо этого присоединиться к рабочему процессу IIS при нажатии клавиши F5?

Ответы [ 5 ]

95 голосов
/ 17 октября 2008

Отладка-> Присоединить к процессу ...

Выберите процесс aspnet_wp.exe из списка.

Если вы используете IIS> версия 5 , процесс будет w3wp.exe , и будет один для каждого пула приложений (так что если вы не знаете, какой пул приложений, к которому вы подключаетесь, необходимо подключить ко всем из них).

50 голосов
/ 17 октября 2008

откройте свойства проекта, перейдите на веб-вкладку и выберите параметр для IIS.

Это фактически запускает экземпляр приложения в IIS и подключает отладчик. Если вы хотите подключиться только к существующему экземпляру IIS, выберите «присоединить к процессу» в меню отладки.

11 голосов
/ 09 декабря 2011

Отладка -> Присоединить к процессу из меню VS.

Чтобы узнать, к какому процессу w3wp.exe подключиться, вы можете использовать следующую команду на сервере 2008

c:\%systemroot%\system32\inetsrv\appcmd list wp

В то время как на Windows 2003 это

c:\%systemroot%\system32\cscript iisapp.vbs

Для получения дополнительной информации см. ПИД приложения IIS PID .

Однако, если у вас есть доступ к диспетчеру задач (taskmgr.exe), вы можете увидеть там непосредственно имя процесса вместе с идентификатором процесса, и в большинстве случаев столбец «имя пользователя» процесса будет одинаковым в качестве имени пула приложений (конечно, вы должны установить эти столбцы, чтобы они отображались в диспетчере задач для просмотра информации).

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

Кроме того, если приложение представляет собой «Веб-сад» (в котором имеется более одного файла w3wp.exe), то даже после подключения к правильному процессу все еще нет гарантии, что точки останова будут достигнуты, поскольку трафик на сайт может быть направлено на другой процесс.

Также обратите внимание, что если вы подключаетесь к приложению, работающему в режиме выпуска, оно теперь будет работать в режиме отладки, что, например, означает, что не будет ограничений по времени ожидания (что может быть проблемой, если вы на самом деле пытается устранить ошибку тайм-аута).


Если вы хотите подключиться к удаленному процессу, рекомендуем вам:

  1. Убедитесь, что брандмауэр не блокирует, открыв соответствующие порты или полностью отключив его (просто не забудьте включить его снова, когда закончите).
  2. У вас должна быть учетная запись домена Windows с правами администратора на удаленном компьютере или учетная запись - с тем же именем пользователя и паролем, что и на локальном компьютере, на котором работает VS - на удаленном компьютере.
  3. На компьютере с установленным VS перейдите в (путь установки Visual Studio) \ Microsoft Visual Studio (номер текущей версии) \ Common7 \ IDE \ Remote Debugger (версия для удаленного компьютера) и скопируйте и вставьте эту папку на удаленный компьютер. или поделитесь этой папкой так, чтобы она была доступна с удаленного компьютера.
  4. На удаленном компьютере войдите в систему как тот же пользователь, что и на локальном компьютере (см. Шаг 2), перейдите к скопированной или общей папке на шаге 3, щелкните правой кнопкой мыши файл «msvsmon.exe» и выберите в контекстном меню «Запуск от имени администратора».
  5. Удаленный монитор должен запуститься и заявить, что он запускает сервер обычно под именем (user) @ (remote machine) или любым другим именем.
  6. В VS выберите Debug -> Attach To Process из меню, оставьте транспорт по умолчанию «Default», а для «Qualifier Name» введите имя с шага 5.
    Если все пойдет правильно, появится список процессов на удаленном компьютере.

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

Более подробную информацию вы можете найти в http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx или в MSDN, а также во многих публикациях на этом сайте.

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

7 голосов
/ 22 марта 2013

Или вы можете использовать один из подключаемых модулей IIS к Visual Studio.

Мое предпочтительное расширение - VSCommands (для VS 2010 - 2012 или 2013 , но еще не 2015) или ReAttach (работает в 2017 году).

6 голосов
/ 17 октября 2008

перейдите в свойства веб-приложения. Выберите раздел «Параметры запуска» и измените с «Использовать веб-сервер по умолчанию» на «Использовать пользовательский сервер». Введите "http://localhost" в базовый URL.

(предполагает VS 2008)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...