Подтвердить что ты не робот

Как подключить отладчик к IIS вместо ASP.NET Development Server?

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

4b9b3361

Ответ 1

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

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

Ответ 2

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

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

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

Ответ 3

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

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

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

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

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

Подробнее см. PID пула приложений IIS.

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

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

Также, если приложение является "Web Garden" (у которого более одного w3wp.exe), то даже после присоединения к правильному процессу все еще нет гарантии, что точки останова будут удалены, поскольку трафик на сайт может быть направленных на другой процесс.

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


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

  • Убедитесь, что брандмауэр не блокируется, открыв соответствующие порты или полностью отключив его (просто не забудьте включить его, когда закончите).
  • У вас должна быть учетная запись домена Windows с правами администратора на удаленном компьютере или иметь учетную запись - с тем же именем пользователя и паролем, что и локальный компьютер, на котором запущен VS - на удаленном компьютере.
  • На машине, на которой установлен VS, перейдите к (путь установки Visual Studio)\Microsoft Visual Studio (номер текущей версии)\Common7\IDE\Удаленный отладчик (версия удаленной машины) и скопируйте и вставьте эту папку на удаленную машину или обмениваться этой папкой, чтобы она была доступна с удаленного компьютера.
  • На удаленном компьютере войдите как тот же пользователь, что и локальный компьютер (см. шаг 2), оттуда перейдите к скопированной или общей папке на шаге 3 и щелкните правой кнопкой мыши на "msvsmon.exe" и в контекстном меню выберите "Запуск от имени администратора".
  • Удаленный монитор должен запуститься и утверждать, что он запустил сервер, обычно по имени (пользователь) @(удаленная машина) или любому другому имени.
  • В VS выберите Debug → Attach To Process из меню, оставьте транспорт на "Default", а для "Qualifier Name" введите имя с шага 5.
    Если все будет правильно, это вызовет список процессов на удаленной машине.

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

Для получения более подробной информации вы можете взглянуть на http://www.codeproject.com/KB/aspnet/IISRemoteDebugging.aspx или на MSDN, а также на многие сообщения на этом сайте. < бр /" >
Надеюсь, это поможет.

Ответ 4

перейти к свойствам веб-приложения. Выберите раздел "Параметры запуска" и измените с "USe default web server" на "использовать настраиваемый сервер". Введите " http://localhost" в базовом URL-адресе.

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