2010-02-02 10 views
5

Widziałem to od dawna i ostatecznie postanowiłem postawić pytanie tutaj. Mam kilka aplikacji, które muszę zachować, które zostały napisane w Delphi 2007 dla .NET (ASP.NET 2.0). Zwykle po pierwszym uruchomieniu aplikacji (przy użyciu IIS) otrzymuję klasyczne "Nie można rozpocząć debugowania na serwerze sieci Web. Nie można podłączyć się do procesu roboczego ASP.NET". Po prostu ponownie wciskam klawisz F9 (uruchom) i działa. Czasami muszę spróbować uruchomić kilka razy, zanim faktycznie będzie działać.Niepoprawnie "Nie można rozpocząć debugowania ... Nie można dołączyć do procesu roboczego ASP.NET" w Delphi 2007 dla .NET

Mam system Windows 7 64-bitowy (i widziałem taki sam efekt na Vista 64-bitowy). Mam IIS skonfigurowane dla ASP.NET i mam następujący kod w moim pliku 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> 

Chodzi o to, że ostatecznie mogę uruchomić aplikację w debugerze, czasami nawet przy pierwszej próbie. Wiele razy, gdy dostaję błąd, zdarza się to około 15 sekund po naciśnięciu przycisku Uruchom, czasami nawet po tym, jak uderzyłem stronę lub dwie (lub trzy) aplikacji internetowej. I tak, kiedy Delphi wchodzi w ten tryb, mogę po prostu uruchomić bez debugowania i wszystko jest w porządku (chyba że naprawdę chcę debugować). Mogę dalej próbować uruchomić debuggera i ostatecznie to zadziała.

Wygląda na to, że debugger .NET Delphi w jakiś sposób wpada na pomysł, że aplikacja nie może działać, a następnie rezygnuje i zatrzymuje proces (który, jak już wspomniałem, czasami jest wyraźnie uruchomiony).

Znam innych programistów, którzy również widzieli to zachowanie. Moje pytanie brzmi, czy ktoś wie, jak zatrzymać to denerwujące zachowanie?

+0

Jestem prawie pewien, że jest to coś, co dzieje się wewnętrznie z Delphi 2007 dla .NET. Wygląda na to, że debugger przekroczył w jakiś sposób czas. Doszedłem do tego wniosku, ponieważ czasami mogę kliknąć 2 lub 3 różne strony aplikacji ASP.NET, zanim pojawi się ten komunikat o błędzie. Oczywiście komunikat o błędzie jest błędny. I wydaje się, że błąd pochodzi z debuggera. W tym momencie myślę, że szansa, że ​​Embarcadero naprawi tę funkcję w funkcji, która została uznana za przestarzałą (Delphi dla .NET) jest prawie zerowa. –

Odpowiedz

0

Jeśli masz ten problem, będziesz nadal mieć ten problem. Jednak jest to obejście.

Rozpocznij od uruchomienia projektu bez debugowania, a następnie dołącz do niego po uruchomieniu. Aby to zrobić, wybierz Uruchom | Uruchom bez debugowania lub naciśnij Ctrl-Shift-F9.

Po uruchomieniu aplikacji i wybraniu usług dostępnych w debugerze wybierz Uruchom | Dołącz do procesu. W oknie dialogowym Dołącz do procesu ustaw listę debugerów w narzędziu CodeGear .NET Debugger. Usługi IIS będą teraz wyświetlane w polu listy Uruchomione procesy. Na moim komputerze pojawia się jako w3wp.exe. Usuń zaznaczenie pola wyboru Wstrzymaj po dołączeniu, a następnie kliknij przycisk Dołącz. (Po pierwszym użyciu okna dialogowego Dołącz do procesu domyślnie zostanie zainstalowany debuger .NET i opcja Pauza po dołączeniu nie zostanie zaznaczona).

Teraz jesteś uruchomiony z włączonym debuggerem. Jeśli trafisz punkt przerwania lub napotkasz wyjątek, lub wybierz Uruchom | Program Pause, debugger zostanie załadowany. Jeśli chcesz wyłączyć debugger bez zamykania aplikacji, wybierz Run | Odłącz od programu.

Wygląda na to, że skoro aplikacja jest już uruchomiona, to nie było związane z tym, co było dawaniem i podawaniem fałszywego komunikatu o błędzie.

Przy dodatkowym rozmiarze, istnieje dobry efekt uboczny zastosowania tego podejścia do debugowania aplikacji Delphi dla platformy .NET. Po uruchomieniu i znalezieniu problemu możesz wejść do debuggera i zobaczyć, co się dzieje w środku. Jeśli znajdziesz problem, który należy naprawić, odłącz się od procesu, napraw problem i przeprowadź kompilację. Możesz pozostawić swoją aplikację uruchomioną w IIS.

Po ponownym skompilowaniu projektu następna strona, którą klikniesz w aplikacji przy użyciu usług IIS, spowoduje załadowanie zaktualizowanego programu. Jeśli potrzebujesz ponownie debuggera, po prostu dołącz do procesu IIS. Innymi słowy, możesz debugować, naprawiać, rekompilować, debugować, naprawiać, rekompilować, ... bez konieczności zamykania aplikacji w przeglądarce.

0

Nie pamiętam dokładnego komunikatu o błędzie, ale uważam, że widziałem coś co najmniej podobnego do tego w przeszłości. Jedyne, co udało mi się naprawić, to uruchomić "Naprawę" na platformie .NET 2.0 (poprzez Panel sterowania -> Dodaj/Usuń programy). Następnie może ponownie uruchomić komputer po tym ...

+0

Obecnie pracuję nad innym projektem. Kiedy wrócę do Delphi dla .NET, spróbuję tego. Dzieki za sugestie. –

+0

OK, wróć do tego projektu. Wykonałem naprawę pakietu SDK platformy .NET 2.0 Framework (to jedyny element .NET w aplecie Programy i funkcje.) Uruchamiam w systemie Windows 7). Wygląda na to, że sytuacja wygląda nieco lepiej, ale wciąż mam to zachowanie na bieżąco. –

Powiązane problemy