Неправильное сообщение «Невозможно начать отладку ... Невозможно подключиться к рабочему процессу ASP.NET» в Delphi 2007 для .NET - PullRequest
5 голосов
/ 02 февраля 2010

Я видел это в течение долгого времени, и, наконец, решил поставить вопрос здесь. У меня есть несколько приложений, которые мне нужно поддерживать, написанные на Delphi 2007 для .NET (ASP.NET 2.0). Обычно при первом запуске приложения (с использованием IIS) появляется классическое сообщение «Невозможно начать отладку на веб-сервере. Невозможно подключиться к рабочему процессу ASP.NET». Я просто снова нажимаю F9 (запустить), и он запускается. Иногда мне нужно попробовать запустить несколько раз, прежде чем он действительно запустится.

Я использую 64-разрядную версию Windows 7 (и видел такой же эффект в 64-разрядной версии Vista). У меня есть IIS, настроенный для ASP.NET, и у меня есть следующий код в моем файле Web.config.

  <system.webServer>
      <modules>
         <add name="DbgConnect" type="Borland.DbkAsp.DbkConnModule,Borland.dbkasp,Version=10.5.0.0,
           Culture=neutral, PublicKeyToken=b0524c541232aae7" preCondition="managedHandler" />
      </modules>
      <validation validateIntegratedModeConfiguration="false" />
  </system.webServer>

Дело в том, что в конечном итоге я могу запустить приложение в отладчике, иногда даже с первой попытки. Много раз, когда я получаю ошибку, это происходит примерно через 15 секунд после нажатия кнопки «Выполнить», иногда даже после того, как я попал на страницу, две (или три) веб-приложения. И, да, когда Delphi входит в этот режим, я могу просто запустить без отладки, и все в порядке (если я действительно не хочу отлаживать). И я могу продолжать попытки запуска в отладчике, и в конце концов он будет работать.

Похоже, что отладчик Delphi .NET каким-то образом понимает, что приложение не может быть запущено, а затем сдается и останавливает процесс (который, как я уже упоминал, иногда явно работает).

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

Ответы [ 2 ]

0 голосов
/ 03 марта 2010

Если у вас есть эта проблема, вы будете продолжать иметь эту проблему.Однако здесь есть обходной путь.

Начните с запуска проекта без отладки, а затем подключитесь к нему, как только он заработает.Для этого выберите Run |Запустите без отладки или нажмите Ctrl-Shift-F9.

Когда ваше приложение запущено и запущено, и вы хотите, чтобы службы отладчика были доступны, выберите Run |Присоединить к процессу.В диалоговом окне «Присоединить к процессу» в раскрывающемся списке «Отладчик» выберите «Отладчик CodeGear .NET».IIS теперь появится в списке запущенных процессов.На моей машине это выглядит как w3wp.exe.Снимите флажок «Пауза после подключения» и нажмите «Вложить».(После использования диалогового окна «Присоединить к процессу» в первый раз по умолчанию будет использоваться отладчик .NET, а «Приостановить после подключения» проверяться не будет.)

Теперь вы работаете с включенным отладчиком.Если вы достигли точки останова, или столкнулись с исключением, или выберите Run |Программа Pause, отладчик будет загружен.Если вы хотите отключить отладчик, не закрывая приложение, выберите Run |Отсоединение от программы.

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

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

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

0 голосов
/ 12 февраля 2010

Я не помню точное сообщение об ошибке, но мне кажется, что я видел что-то похожее на это в прошлом. Все, что я сделал, чтобы это исправить - это запустил «Восстановление» в .NET 2.0 Framework (через Панель управления -> Установка и удаление программ). Тогда, возможно, перезагрузите компьютер после этого ...

...