私の発行サイトは、別の専用サーバーにデプロイされています。多くの場合、クライアントからページ レベルの変更を受け取ります。これには、クライアント側とサーバー側の両方のコードの変更が必要です。最初にローカルで変更を行ってから、クライアントがマイナーな変更を何度も要求したため、完全な公開ビルド コードを使用せずに、サーバー側のコードを使用してそのページをサーバーにデプロイします。 、クライアントがページの変更に満足したら、公開バージョンをサーバーに配置します。パブリッシュと非パブリッシュのコード展開の主な違いは何ですか? aspx.cs を使用して aspx をサーバーに配置すると正常に動作するので、公開バージョンを展開することが重要なのはなぜですか。
1 に答える
aspx.cs を使用して aspx をサーバーに配置すると正常に動作するので、公開バージョンを展開することが重要なのはなぜですか。
それは主に効率の問題です。サーバー上に ASPX ファイルと ASPX.cs (分離コード) ファイルを並べて配置すると、その分離コード ファイルは、誰かが最初にページを要求したときに、独自のアセンブリ (.dll ファイル) にコンパイルされます。実際には、コンパイルされたコードではなく、ソース コードをサーバーにプッシュしています。ASPX ファイルごとにこれを行うと、数十から数百の別個の個別のアセンブリ (各 ASPX ファイルに 1 つ) になる可能性があり、1 つの欠点は、コンパイラが最初にソース コードをバイナリ dll に変換する間の遅延です。もう 1 つの問題は、サーバーが 1 つではなく大量のアセンブリを管理する必要があることです。
公開バージョンを配置すると、コンパイラはすべての分離コード ファイルを 1 つのアセンブリにマージします。また、ASPX ファイルの @Page ディレクティブもわずかに変更されます。サーバーにはソース コードがデプロイされず、より効率的な単一のバイナリ DLL のみがデプロイされます。
したがって、ASPX の変更 (スタイル、プレーンな HTML など) のみを行っている場合は、@Page ディレクティブがコンパイル済みでデプロイ済みのコードビハインドと一致する限り、それらを個別にプッシュしても問題ありません。ただし、ASPX と分離コードの両方を変更する場合は、発行を行う必要があります。これは、サーバーの bin フォルダーに展開する必要がある別の結合された分離コード アセンブリになるためです。
ASPX とコード ビハインドを一緒にデプロイしてサーバー上で何かをテストし、それが機能することを確認したら、戻ってパブリッシュ デプロイを実行し、コード ビハインドの変更をマージされた DLL に焼き付けます。次に、それらをファイル (dll および ASPX) にプッシュし、コード ビハインド ソースを削除して完了です。