2009-09-02 9 views
6

Ich habe eine alte asp.net Web - Anwendung auf .net Framework 1.1 basiert, es wurde auf Live - Server seit vielen Jahren bereitgestellt, gerade jetzt habe ich einige Probleme mit der Live-Site nur, die Entwicklungsversion auf meinem Desktop funktioniert gut. Ich denke also darüber nach, einen Remote-Debugger an die Live-Site anzuhängen und zu überwachen, was genau auf dem Live-Server passiert ist, aber ich weiß nicht, wie ich das machen soll.Wie man eine Asp.net - Anwendung auf Live - Server debuggt

Ich habe Remote Debugger zuvor verwendet, aber das wurde verwendet, wenn ich neues Projekt auf einem Entwicklungsserver im lokalen LAN erstellt habe, und die Quelle und das Projekt ist tatsächlich auf dem Remote-Server, ich habe gerade Remote-Debugger von meinem Desktop an diesen Server angeschlossen , es funktioniert gut. Aber ich bin mir nicht sicher, wie man eine Anwendung auf dem Live-Server debuggt.

Vielen Dank für Ihre Hilfe!

+0

wirklich helfen würde, die Art von Fragen der Live-Site zu wissen, mit - können wichtige Führung für Kommando-Debugging bieten. –

+0

im Grunde Live-Server wird plötzlich ziemlich hohe CPU-Auslastung für W3WP-Prozess zu bekommen und wir finden, dass einige httpwebrequest senden durch Anwendung gesendet werden gesendet werden oder zu empfangen, viele CLOSE_WAIT Verbindungen dort aber keine aktive Verbindung mehr. Vielen Dank. – user167466

Antwort

6

Nun ja, es ist möglich, aber ist mehr beteiligt. Sie müssen dem IIS-Arbeitsprozess, auf dem die Website ausgeführt wird, eine Verbindung herstellen (w3wp.exe). Ich habe es nicht oft gemacht, und normalerweise versuche ich es zu vermeiden, denn während man sich anlegt, kann niemand auf die Website zugreifen.

Hier ist ein Artikel, der den Prozess erklärt.

http://www.codeproject.com/KB/aspnet/ProcessAttache.aspx

Der Artikel basiert auf 2.0 nicht 1.1, aber es sollte Ihnen noch eine Vorstellung davon, wie es zu tun. Ich nehme an, Sie müssen Visual Studio auf dem Produktionsserver haben.

Wenn dies nicht möglich ist und Sie Zugriff auf den Code haben, können Sie auch versuchen, eine Textdatei an bestimmten Punkten in der Anwendung zu protokollieren. Ich habe dies sehr effektiv gemacht, um Probleme zu finden, die es Ihnen ermöglichen, die Website normal laufen zu lassen und einfach die Protokolldatei zu überprüfen, nachdem Sie wissen, dass das Problem aufgetreten ist.

Sie können log4net, eine kostenlose Anwendung für die Protokollierung, ausprobieren.

Viel Glück

+0

Vielen Dank für die Hilfe. Ich habe den Artikel überprüft, Sie haben Recht, das ist nicht der beste Ansatz, um die Live-Site zu überwachen. Ich werde versuchen, die Protokollierung für den verdächtigen Teil des Codes hinzuzufügen. Ich benutze auch DebugDiag, um einige Informationen zu bekommen, aber es ist schwer für mich, sie mit meinem Code in Beziehung zu setzen. – user167466

6

Nun, warum versuchen Sie nicht, Tracing auf dem Server zu aktivieren? Dann können Sie alle Informationen auf einer separaten Seite sehen? Zur Aktivierung in der web.config:

<configuration> 
    <system.web> 
    <trace enabled="true" pageOutput="false" requestLimit="40" 
     localOnly="false"/> 
    </system.web> 
</configuration> 

Laden Sie dann die Seite trace.axd auf Ihrer Website, um die Daten auf Seitenebene zu sehen.

+0

Vielen Dank für die Antwort. Ich bin mir nicht sicher, ob nur die Aktivierung der Trace-Funktion mir genügend Informationen liefert, um ein Timeout-Problem herauszufinden. Ich würde gerne wissen, wo und wann diese Zeitüberschreitung aufgetreten ist. worauf genau warten sie? Wissen Sie, wie kann ich Debugger an den Live-Server anschließen? Sollte ich VS.net 2003 Komponenten zuerst auf dem Live Server installieren um das Debuggen zu ermöglichen? Vielen Dank. – user167466

Verwandte Themen