2010-02-02 11 views
5

ho visto questo per lungo tempo, e finalmente deciso di mettere la questione qui. Ho alcune applicazioni che devo mantenere scritte in Delphi 2007 per .NET (ASP.NET 2.0). Normalmente, la prima volta che eseguo l'applicazione (utilizzando IIS) ottengo il classico messaggio "Impossibile avviare il debug sul server Web. Impossibile connettersi al processo di lavoro ASP.NET". Ho semplicemente premuto F9 (esecuzione) di nuovo, e funziona. A volte devo provare a eseguire più volte prima che venga effettivamente eseguito.non corretto "Impossibile avviare il debug ... Incapace di attaccare al lavoro di ASP.NET processo" messaggio in Delphi 2007 for .NET

Sono in esecuzione Windows 7 a 64 bit (e ho visto lo stesso effetto su Vista a 64-bit). Ho IIS configurato per ASP.NET e ho il seguente codice nel mio file 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> 

Il punto è che alla fine posso eseguire l'applicazione nel debugger, a volte anche al primo tentativo. Molte volte quando ottengo il fallimento succede circa 15 secondi circa dopo aver premuto Esegui, a volte anche dopo aver colpito una o due o tre pagine dell'app Web. E, sì, quando Delphi entra in questa modalità, posso semplicemente eseguire senza debug, e tutto va bene (a meno che non voglia veramente fare il debug). E, posso solo continuare a provare a eseguire il debugger e alla fine funzionerà.

Sembra che il debugger .NET di Delphi abbia in qualche modo l'idea che l'applicazione non possa essere eseguita, quindi arresta e interrompe il processo (che, come ho menzionato, a volte è chiaramente in esecuzione).

Conosco altri sviluppatori che hanno visto questo comportamento. La mia domanda è, qualcuno sa come fermare questo comportamento fastidioso?

+0

Sono sicuro che questo è qualcosa che sta accadendo all'interno di Delphi 2007 per .NET. Sembra che il debugger scada in qualche modo. Vengo a questa conclusione perché a volte riesco a fare clic su 2 o 3 pagine diverse dell'app ASP.NET prima che venga visualizzato questo messaggio di errore. Chiaramente il messaggio di errore è sbagliato. E, l'errore sembra essere sollevato dal debugger. A questo punto, penso che la possibilità che Embarcadero risolverà questa caratteristica in una funzionalità deprecata (Delphi for .NET) è quasi nulla. –

risposta

0

Se si verifica questo problema, si continuerà a presentare questo problema. Tuttavia, ecco una soluzione alternativa.

Iniziare eseguendo il progetto senza il debug, e quindi collegare ad esso una volta si sta lavorando. Per fare ciò, selezionare Esegui | Esegui senza eseguire il debug o premi Ctrl-Maiusc-F9.

Una volta che l'applicazione è in esecuzione, e si desidera avere i servizi del debugger disponibili, selezionare Esegui | Allegare al processo. Dalla finestra di dialogo Collega a processo, impostare il menu a discesa Debugger su CodeGear .NET Debugger. IIS apparirà ora nella casella di riepilogo Processi in esecuzione. Sulla mia macchina, appare come w3wp.exe. Deseleziona la casella di controllo Metti in pausa dopo il collegamento, quindi fai clic su Allega. (Dopo aver utilizzato la finestra di dialogo Collega al processo per la prima volta, verrà impostato automaticamente su debugger .NET e Pausa dopo che il collegamento non verrà controllato.)

Ora si sta eseguendo con il debugger abilitato. Se si preme un punto di interruzione o si verifica un'eccezione o si seleziona Esegui | Sospendi programma, verrà caricato il debugger. Se si desidera disabilitare il debugger senza chiudere l'applicazione, selezionare Esegui | Scollega dal programma.

A quanto pare, dal momento che l'applicazione è già in esecuzione, tutto ciò che stava dando e dando il messaggio di errore falso non è coinvolto.

Il plus size, c'è un piacevole effetto collaterale di utilizzare questo approccio per il debug di un Delphi per .NET. Una volta che si è in esecuzione e si riscontra un problema, è possibile accedere al debugger e vedere cosa succede all'interno. Se trovi un problema da risolvere, scollegalo dal proces, correggi il problema e ricompila. Puoi lasciare l'applicazione in esecuzione in IIS.

Dopo che il progetto è stato ricompilato, la pagina successiva che viene visualizzata nell'applicazione utilizzando IIS farà caricare il programma aggiornato. Se hai bisogno di nuovo il debugger, semplicemente collegalo al processo IIS. In altre parole, esegui il debug, correggi, ricompila, esegui il debug, correggi, ricompila, ... senza dover chiudere mai l'applicazione nel tuo browser.

0

Non ricordo esattamente il messaggio di errore, ma credo di aver visto qualcosa di simile a questo in passato. Tutto quello che ho fatto per risolvere il problema è stato eseguire un "Repair" su .NET 2.0 Framework (tramite Pannello di controllo -> Aggiungi/Rimuovi programmi). Quindi forse riavviare il computer dopo ...

+0

Attualmente sto lavorando a un altro progetto. Quando torno a Delphi per .NET, proverò questo. Grazie per il suggerimento. –

+0

OK, torna su questo progetto. Ho eseguito una riparazione su .NET 2.0 Framework SDK (che è l'unico elemento .NET nell'applet Programmi e funzionalità. Sto eseguendo il riavvio in Windows 7). Le cose sembrano essere leggermente migliori, ma continuo a comportarmi regolarmente. –

Problemi correlati