簡単に言うと、コードビハインドのあるASP.net Webサイトでは、*。csファイルはどの時点でコンパイルされますか?
コンテキスト:その後、離れた同僚が、.csコードビハインドを使用してWebサイトを共有サーバーにデプロイしました。 .csファイルに小さな変更を加えました。これは、いずれかのページに反映されるはずですが、まだ表示されていません。アプリケーションプールを再起動しましたが、同じサーバーで使用されている可能性のある他のチームのアプリがいくつかあるため、サーバーでIISをリセットするのは嫌です。
これは、デフォルトでCodeFile
であり、ビルドアクションの変更を許可しないWeb Application
プロジェクトとは対照的に、Web Site
プロジェクトに適用されます。 。
ASP.NET Web Applications
には、ページを展開する2つの方法があります。 CodeFile
およびCodeBehind
。デフォルトでは、ページは常にCodeBehind
を使用しますが、これは変更できます。
CodeBehindは、.csファイルをbin
フォルダー内の.dllファイルにコンパイルしますコンパイル/ビルド時次に、それをWebサーバーにデプロイします。 .csファイルをWebサーバーにデプロイする必要はありません。そうした場合、それは未使用のままそこに座っているだけです。
CodeBehindを使用してページを構成するには、次のことを確認してください。
.aspx
ファイルのページディレクティブにはCodeBehind="your.aspx.cs"
があります.cs
ファイルと.designer.cs
ファイルのプロパティには、compile
のbuild-action
があります。これにより、ASP.NETは.csファイルをオンザフライでコンパイルしますサーバー上で。これは、.cs
ファイルをWebサーバーにデプロイする必要があることを意味します。また、.cs
ファイルはコンパイル/ビルド時にコンパイルされないため、bin
フォルダーの.dll
に組み込まれません。
CodeFileを使用すると、.cs
ファイルに変更を加えてデプロイすることができますそのファイルのみ本番Webサーバーでの変更を確認できます。再デプロイする必要はありません。アプリプールをリサイクルする必要はありません。これは、多くの状況で非常に役立ちます。
CodeFileを使用してページを構成するには、次のallが満たされていることを確認してください。
.aspx
ファイルのページディレクティブにはCodeFile="your.aspx.cs"
があります.cs
ファイルのプロパティには、content
のbuild-action
があります。.designer.cs
ファイルのプロパティには、none
のbuild-action
があります。.cs
がbinフォルダーの.dll
にコンパイルされ、CodeFileに変更してもそこに残るためです。 CodeFileはオンザフライでコンパイルされ、オン-の.dll
およびで定義されたものと同じコード/クラスを取得します。 the-flyでコンパイルされたコード。ランタイムエラーが発生します。私が使用するセットアップでは、プロジェクトのビルド時に.csファイルがコンパイルされます。つまり、変更する必要があるのは、.csファイルではなく、ビン内の.dllです。
.aspxファイルはいつでも変更できますが、コードビハインドを有効にするには、プロジェクトを再構築する必要があると思います。
以前は問題なく単一の.dllを置き換えました(ただし、これは良い習慣ではありません)。
どうやらあなたがしたことはうまくいくはずです。キャッシュが実装されているかどうかを確認します。それ以外の場合は、コードを公開して、.csファイルの代わりにdllをデプロイします。稼働する前に、ステージングサーバーでテストすることをお勧めします。