Debugging und Entwicklung sollten in einer "sicheren" Umgebung erfolgen - etwas, das nicht unternehmenskritisch ist. Zum Beispiel sollten Sie einen Entwicklungs- und / oder QA-Server haben, den Sie für die Entwicklung und das Debugging verwenden.
BEARBEITEN: Ihr QA-Server sollte Ihren Produktionsserver spiegeln, so dass Sie in einer Umgebung debuggen können, die Ihrer Produktionsumgebung ähnelt, wenn nicht identisch ist.
Es hängt wirklich davon ab, ob Sie das Risiko akzeptieren, das die Installation mit sich bringt:
Sie sollten sich auch fragen, was am schwierigsten ist, wenn Sie das Problem ohne VS auf dem Server debuggen:
Das ist definitiv nicht akzeptabel. Zum Debuggen können Sie immer die Debugging-Tools für windows / windbg verwenden. Unterstützt .NET Debugging (SOS / Sohn des Streiks), und mit einem Spickzettel ist nicht so schwer zu bedienen. Windbg kann von einem USB-Stick ohne Installation laufen.
Zweitens, und der Hauptgrund: Immer wenn Sie eine der neueren Versionen von VS installieren, registriert es seinen Debugger für den interaktiven Modus ** - Sie erhalten ein Meldungsfeld, wenn eine Ausnahme auftritt. Sie müssen die Registrierung manuell bearbeiten, um nach der Installation auf das Standardverhalten zurückzusetzen - und niemand erinnert sich daran.
Tu es nicht. Es gibt bessere Möglichkeiten, Probleme zu diagnostizieren.
Der empfohlene Weg besteht darin, einen Spiegel des Produktionsservers für Test- / Debugging-Zwecke zu haben. Um den Spiegelstrom beizubehalten, müssen Sie alle Anwendungsupdates gleichzeitig auf beiden Servern installieren und die Produktionsdatenbank bei Mirror Nightly oder bei Bedarf sichern / wiederherstellen.
Es gibt immer noch einige Nachteile wie Fehler, die nur unter schwerer Last auftreten. In diesem Fall benötigen Sie eine Art Protokollierung, um Fehler zu verfolgen. Außerdem müssen Sie möglicherweise eine zusätzliche Lizenz für Komponenten von Drittanbietern erwerben, um sie auf dem Produktionsspiegelserver zu installieren.
Ich würde das nicht für eine gute Idee halten. Ihr Code sollte eine ausreichende Protokollierung aufweisen, damit Sie bei Problemen in der Produktion zurückgehen und feststellen können, was passiert ist, und das Problem in einer Entwicklungsumgebung beheben. Testen Sie es anschließend in einer Staging- / uat-Umgebung, bevor Sie es in die Produktion übertragen.
An der Stelle, an der ich arbeite, haben Entwickler keinen Zugriff auf eine Produktionsumgebung, die von den Server- / Netzwerkteams bearbeitet wird, aber das liegt daran, dass es sich um ein großes Unternehmen handelt. Für kleinere Firmen haben die Entwickler Zugriff, aber das bedeutet nicht, dass Sie sie zum Debuggen verwenden sollten.
Beide. Einer der Vorteile besteht darin, dass Diagnoseprobleme manchmal leichter werden können. Einer der Nachteile ist, dass die Installation manchmal eine funktionierende Webanwendung durchbrechen kann. Ich würde es nur tun, wenn ich müsste.
Bearbeiten: Ein weiterer potenzieller Nachteil besteht darin, dass ein Mitarbeiter entscheidet, einen Live-Prozess auf dem Produktionsserver zu debuggen, die App an einem Haltepunkt stoppt und dann ins Bett geht, ohne zu bemerken, dass er die App nicht verfügbar hat. Ja, das ist mir passiert.
Ich würde niemals direkt auf dem Produktionsserver etwas tun, für das Visual Studio erforderlich wäre. Es ist zu riskant, Änderungen an der Produktion vorzunehmen, die nicht wieder in die Codebasis und damit in die Versionskontrolle zurückkehren. Schließlich werden Sie einen Fehler wieder einführen, von dem Sie dachten, Sie hätten ihn gelöst, weil Sie ihn nur auf dem Produktionsserver geändert haben. Gelegentlich werde ich Markup- oder XML-Dateien auf dem Produktionsserver aktualisieren, aber erst, nachdem ich die Änderung in der Entwicklung vorgenommen und in der QA-Box getestet habe, und nur dann, wenn kein tatsächlicher Code beteiligt ist.
Natürlich kommt es auf das Produkt und das, was Sie debuggen. Im Allgemeinen sollten Sie versuchen, dies zu vermeiden, aber es gibt Fälle, in denen Sie ein Szenario auf einem Testserver nicht genau duplizieren können, und es könnte nützlich sein, einen Debugger an einen laufenden Prozess anzuhängen, um ein Problem schnell einzugrenzen. Wenn Sie also einen MMORPG-Server betreiben und unter bestimmten Lastbedingungen ein zeitweiliger Fehler auftritt, können Sie Wochen oder Monate damit verbringen, es aus Protokolldateien und / oder simulierten Verbindungen auf einem Testserver herauszufinden, oder Sie können eine Verbindung herstellen ein Debugger, während das Problem in Echtzeit auf dem Produktionsserver auftritt, und es in einer Stunde herausfinden.
Ich würde dies jedoch eher als Ausnahmefall betrachten und so viel Debugging vom Produktionsserver durchführen, wie es möglich und sinnvoll ist.
Sehen Sie sich Sasha Goldshteins Produktions-Debugging in seinem Blog . Er hat einige großartige exemplarischen Vorgehensweisen und Screencasts darüber, was man tun kann, um ohne Visual Studio zu debuggen.
Hängt davon ab, wie Sie es verwenden. Die meiste schwere Arbeit, für die sie entwickelt wurde, sollte auf einem Produktionsserver nicht notwendig sein. Normalerweise installiere ich Notepad ++ auf dem Produktionsserver für die Bearbeitung von XML, Konfigurationsdateien usw. Ich würde sagen, wenn Sie VS installieren möchten, gehen Sie dafür.
Es wird allgemein als "Best Practice" betrachtet, Visual Studio nicht auf Produktionsservern zu installieren. Dies kann Sicherheitsrisiken mit sich bringen - aber ein großes Problem wäre die Leistung. Visual Studio benötigt eine enorme Menge an Ressourcen, und das Ausführen von Debugging kann die Performance von Produktionsanwendungen erheblich beeinträchtigen.
Tags und Links .net webserver visual-studio-2008 visual-studio-2005