Отладчик VS2008 ведет себя странно для веб-приложения - PullRequest
0 голосов
/ 01 августа 2009

На моем рабочем компьютере отладка в Visual Studio 2008 (SP1), кажется, работает несколько иначе, чем я привык.У меня есть две проблемы, которые могут или не могут быть связаны.

Первая проблема:

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

По какой-то причине единственный способ, которым я могу сделать это на своем рабочем ПК, - это установить точку останова наСтрока, которая выбросила исключение, и повторите то, что я сделал.Это раздражало меня уже пару дней, но я понятия не имею, что может вызвать это.Есть идеи?

Вторая проблема

Веб-сервисы WCF, используемые на отлаживаемом сайте, ведут себя немного странно, когда дело доходит до отладки.В большинстве случаев установка точки останова в службе не будет иметь никакого эффекта при выполнении этого кода.Сначала я подумал, что мне нужно подключиться к процессу wcfhost, но это не так.Когда я ставлю точку останова на линии, где она вызывает службу, и использую F11 для перехода в вызов метода, я do в конечном итоге оказываюсь в коде службы и могу отлаживать все, чтохочу.

Зачем вступать в работу, когда точки останова игнорируются?Есть ли способ изменить это поведение?

1 Ответ

2 голосов
/ 01 августа 2009

Для 1-й задачи:

  • В Visual Studio перейдите в раздел Отладка / Исключения
  • В списке должны появиться три столбца: «Имя» (тип исключений), «Брошенный», «Пользовательский»
  • В столбце «Обработано пользователем» необходимо активировать флажок для «Общих исключений времени исполнения».

Обратите внимание: если вы не видите столбец «Обработано пользователем», перейдите в «Инструменты / Параметры», затем нажмите «Отладка» в дереве и в списке активируйте «Включить только мой код (только для управляемого)». Тогда столбец «Обработано пользователем» должен быть виден в другом диалоговом окне, и вы можете активировать соответствующий флажок.

Для 2-й задачи: Мне кажется, что я столкнулся с подобной проблемой. Я предполагаю, что вам нужно установить точку останова там, потому что служба WCF работает на отдельном «веб-сервере» (ваш локальный веб-сервер VS). Поэтому это не похоже на обычный вызов метода в том же приложении, и поэтому вы должны установить точку останова для вызываемого метода WCF. Я всегда так делал, и у меня это прекрасно работало.

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