1. ホーム
  2. asp.net

[解決済み] ASP.NETアプリケーションをライブサーバーにデプロイする方法とは?

2022-12-02 19:06:31

質問

私は、ASP.NETウェブアプリケーションプロジェクトをデプロイするために使用するさまざまなテクニックやツールを探しています( NOT ASP.NET webサイト)を本番に展開する方法を探しています。

私は、継続的インテグレーションビルドサーバーがバイナリをある場所にドロップしてから、最初のユーザーリクエストがこれらのバイナリをヒットするまでの間に起こるワークフローに特に興味があります。

  1. 特定のツールを使用していますか、それとも XCOPY だけですか。アプリケーションはどのようにパッケージ化されていますか (ZIP、MSI、...)?

  2. アプリケーションが初めてデプロイされるとき、App Pool と Virtual Directory をどのようにセットアップしますか (手動または何らかのツールで作成しますか)?

  3. 静的リソース(CSS、JS、または画像ファイル)が変更されたとき、アプリケーション全体を再デプロイしますか、それとも変更されたリソースだけを再デプロイしますか?アセンブリ/ASPX ページが変更された場合はどうでしょうか。

  4. あるアプリケーションについて、展開されたすべてのバージョンを追跡し、何か問題が発生した場合に、アプリケーションを以前の既知の動作状態に復元する手順を持っていますか?

前のリストを完成させるのはご自由に。


そして、ASP.NETアプリケーションをデプロイするために使用するのは、以下の通りです。

  1. を追加します。 ウェブデプロイメントプロジェクト を追加し、ASP.NET Web アプリケーションを構築するように設定します。
  2. セットアップ・プロジェクト ( NOT Web Setup Project) をソリューションに追加し、Web Deployment Project の出力を取得するように設定します。
  3. カスタム インストール アクションを追加し、OnInstall イベントでカスタム ビルド .NET アセンブリを実行し、以下を使用して IIS に App Pool と Virtual Directory を作成します。 System.DirectoryServices.DirectoryEntry (このタスクは、アプリケーションを最初にデプロイするときにのみ実行されます)。IIS での複数の Web サイト、仮想ディレクトリの認証、および App Pool の ID 設定をサポートします。
  4. TFS でカスタム タスクを追加して、セットアップ プロジェクトを構築します (TFS はセットアップ プロジェクトをサポートしていないため、devenv.exe を使用して MSI を構築する必要がありました)。
  5. MSI がライブ サーバーにインストールされます (以前のバージョンの MSI がある場合は、最初にアンインストールされます)。

どのように解決するのですか?

私たちは、すべてのコードをセットアップ ファクトリを使用して MSI にデプロイしています。 何かを変更する必要がある場合は、ソリューション全体を再デプロイします。 これは、CSS ファイルのために過剰なことのように聞こえますが、すべての環境を絶対に同期させ、何が本番環境にあるかを正確に把握します (すべてのテスト環境と uat 環境に同じ方法でデプロイしています)。