9

通常、必要に応じて製品の問題を簡単に解決するために、VS.NET を運用サーバーにインストールします。

これは良い考えですか、それとも悪い考えですか?

4

11 に答える 11

10

デバッグと開発は、ミッション クリティカルではない「安全な」環境で行う必要があります。たとえば、開発とデバッグに使用する開発および/または QA サーバーが必要です。

EDIT: QAサーバーは本番サーバーをミラーリングする必要があります。これにより、本番環境と同じではないにしても、類似した環境でデバッグできるようになります。

于 2008-11-08T18:56:02.443 に答える
4

それは、インストールがもたらすリスクを受け入れるかどうかに大きく依存します。

  • 誰かがデバッガーを間違ったアプリケーションにアタッチすると、本番アプリケーションがハングします。
  • ベスト プラクティスと見なされているものを破っていますが、次はどのプラクティスを破りますか? 最悪の場合、人々は本番環境で開発タスクを開始することになります
  • サポートを受ける際の潜在的な問題です。VS がインストールされている運用環境で IIS や SQL Server などがサポートされているかどうかを Microsoft に確認します。

また、サーバー上で VS を使用せずに問題をデバッグする際に何が最も難しいかを自問する必要があります。

  • スタック トレースとその読み方に精通していますか?
  • アプリケーションのデバッグ モード バージョンとリリース/フリー ビルドを実行する方法を知っていますか?
  • Windows Debugging Toolsで .NET アプリケーションにSOS デバッガ拡張機能を使用できることをご存知でしたか?
  • サーバーのクラッシュを自動的に収集して報告するツールの使用を検討したことがありますか?
  • 生産で発生する問題を防ぐために何をしていますか。ある種の静的分析を行ったり、問題に基づいてモジュールを再設計したり、テスト駆動開発のような手法を使用したりできますか?
于 2008-11-08T19:32:18.173 に答える
4

それは絶対に受け入れられません。まず、デバッグには windows/windbg のデバッグ ツールをいつでも使用できます。.NET のデバッグ (SOS / ソン オブ ストライク) もサポートしており、チート シートを使用してもそれほど難しくありません。Windbg は、インストールせずに USB スティックから実行できます。

2 つ目は、最も大きな原因です。新しいバージョンの VS をインストールすると、デバッガーがインタラクティブ モードに登録されます**。例外が発生すると、メッセージ ボックスが表示されます。インストール後にレジストリを手動で編集してデフォルトの動作に戻す必要がありますが、誰もそれを覚えていません。

やらないでください。問題を診断するためのより良い方法があります。

于 2008-11-08T19:36:20.363 に答える
3

推奨される方法は、テスト/デバッグの目的で運用サーバーのミラーを用意することです。ミラーを最新の状態に保つには、すべてのアプリケーションの更新を両方のサーバーに同時にインストールし、運用データベースを夜間またはオンデマンドでミラーにバックアップ/復元する必要があります。

高負荷時にのみ発生するエラーなど、まだいくつかの欠点があります。この場合、エラーを追跡するために何らかのログが必要です。また、本番ミラーにインストールするサードパーティ コンポーネントの追加ライセンスを購入する必要がある場合もあります。

于 2008-11-08T19:05:43.797 に答える
2

これは良い考えだとは思いません。本番環境で問題が発生した場合に、ログに戻って何が起こったのかを判断し、開発環境で修正してから、本番環境にプッシュする前にステージング/uat 環境でテストできるように、コードには十分なログが必要です。

私が働いている場所では、開発者はサーバー/ネットワークチームによって処理される実稼働環境へのアクセスを許可されていませんが、それは大規模なビジネスであるためです. 小規模な企業の場合、開発者はアクセスできますが、デバッグに使用する必要があるという意味ではありません。

于 2008-11-08T19:22:13.543 に答える
1

両方。利点の 1 つは、問題の診断が容易になる場合があることです。欠点の 1 つは、インストールによって、動作中の Web アプリケーションが壊れることがあることです。私は必要な場合にのみそれを行います。

編集: 同僚が本番サーバーでライブ プロセスをデバッグすることを決定し、ブレークポイントでアプリを停止し、アプリを使用できないままにしておいたことに気付かずに就寝した場合、これに対する別の潜在的な欠点が発生します。はい、これは私に起こりました。

于 2008-11-08T18:55:10.587 に答える
1

Visual Studio を必要とする運用サーバーで直接行うことは決してありません。コードベース、つまりバージョン管理に戻らない本番環境での変更はリスクが高すぎます。最終的には、本番サーバーでのみ変更したために解決したと思っていたバグを再導入することになります。時折、本番サーバー上のマークアップまたは XML ファイルを更新しますが、それは開発中に変更を加えて QA ボックスでテストした後で、実際のコードが含まれていない場合のみです。

于 2008-11-08T19:07:17.053 に答える
1

もちろん、それは製品とデバッグ対象によって異なります。一般的に言えば、回避するように努めるべきですが、テスト サーバーでシナリオを正確に再現できない場合があり、実行中のプロセスにデバッガーをアタッチして問題をすばやく絞り込むと便利な場合があります。つまり、MMORPG サーバーを実行していて、特定の負荷条件下で発生する断続的なバグがある場合は、ログ ファイルやテスト サーバーでのシミュレートされた接続から、数週間または数か月を費やして把握するか、接続することができます。問題が実稼働サーバーでリアルタイムに発生している間にデバッガーを使用して、1 時間で解決します。

ただし、私はこれを例外的なケースとして扱う傾向があり、本番サーバーから可能な限り妥当なデバッグを行います。

于 2008-11-08T19:15:34.820 に答える
1

Sasha Goldshtein のブログでのProduction Debuggingシリーズをご覧ください。彼は、Visual Studio を使用せずにデバッグするために何ができるかについて、いくつかの優れたウォークスルーとスクリーンキャストを持っています。

于 2008-11-08T19:31:44.727 に答える
0

一般に、運用サーバーに Visual Studio をインストールすることは "ベスト プラクティス" ではないと考えられています。これによりセキュリティ上のリスクが生じる可能性がありますが、大きな懸念事項の 1 つはパフォーマンスです。Visual Studio は膨大な量のリソースを使用し、そこでデバッグを実行すると、運用アプリケーションのパフォーマンスに大きな影響を与える可能性があります。

于 2008-11-12T23:23:39.793 に答える
0

使い方次第です。設計された重い作業のほとんどは、運用サーバーでは必要ありません。私は通常、xml や構成ファイルなどを編集するために運用サーバーに Notepad++ をインストールします。

于 2008-11-08T19:02:39.543 に答える