Global.asaxがプリコンパイルされたasp.net Webサイトに読み込まれない
-
06-07-2019 - |
質問
Visual Studio 2008を使用してasp.net Webサイトを公開しました。サーバー(Windows 2008サーバー)でWebサイトを立ち上げると、global.asaxのコードが実行されていないことに気付きました。 Global.asaxの本文は次のようになります。
<%@ Application Language="C#" %>
<script runat="server">
protected void Application_Start()
{
// Initialize some site settings like a task scheduler
}
protected void Application_End(object sender, EventArgs e)
{
// Perform some clean up code
}
</script>
コンパイル済みのWebサイトのbinフォルダーにApp_global.asax.dllがありますが、それは役に立たないようです。
欠落している構成オプションはありますか? App_global.asax.dllを削除し、プリコンパイルされたWebサイトで元のglobal.asaxを使用すると正常に機能します。
解決
私が見つけた唯一の答えは、コンパイルされた出力フォルダーにglobal.asax(ロジック付き)を含めることです。
他のヒント
同様の問題が発生し、開発サーバーの WebサイトのルートフォルダーからPrecompiledApp.configファイルを削除することで問題を解決できました。
これは、Visual Studioから公開するときにサーバーに転送された可能性があると思います。
この投稿には、一部の人々の問題を解決する解決策がいくつかありますが、すべてではありません。あなたはそれらを試して、それがあなたのために働くかどうか見ることができます。
必要なすべてのdllがプロジェクトに含まれていることを確認してください。プロジェクトをコンパイルし、dllのバージョンを比較し、これらが一致しない場合は、手動で各フォルダーに置き換えてください。正しいバージョンのDllを実行していることを確認してください。
これは私のために働いた。
.NET 4およびIIS 7.0でプリコンパイル済みのASP.NETプロジェクトを公開した後、同様の問題が発生しました。グローバルアプリケーションがアプリケーションの起動時に実行されていなかったため、PrecompiledApp.configをサーバーに配置した後、問題が解決され、コンパイルされたApp_global.asax.dllという名前のGlobal.asaxファイルがライフサイクルの前に出て実行されました。
Application_Start()の名前をApplication_OnStart()に変更すると問題が解決すると思います。