インライン ASP.NET(4.0) Web アプリケーションの発行が正常に完了した後のコンパイル エラー



asp net<% %> (3)

私のWebアプリケーションが正常にビルドされ、パブリッシュされると、ファイルをWebサーバーにコピーした後に問題が発生し、いくつかのページを参照しようとするとコンパイルエラーが発生し、他のページは正常に機能し続けます。

私の最初の思想は、ファイルの一部がコピーされていない可能性があるため、ページを再パブリッシュしてテストしたところ、以前のパブリッシュと同じ問題を抱えていた別のページをチェックしてから、毎回変更されたページで同様の効果が見られました。

以前にWebサーバー上で機能していたWebサーバー上で失敗したページは、この発行用に変更されず、Visual Studio 2010 Debugで正常に動作し続けます。

アプリケーションプールをリサイクルしてウェブサイトを再起動し、サーバーを再起動しました。

エラーログのエラーは次のとおりです。

GAE:: System.Web.HttpException (0x80004005): The file /XXXX.aspx has not been pre-compiled, and cannot be requested.     
at System.Web.Compilation.BuildManager.GetVPathBuildResultInternal(VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)     
at System.Web.Compilation.BuildManager.GetVPathBuildResultWithNoAssert(HttpContext context, VirtualPath virtualPath, Boolean noBuild, Boolean allowCrossApp, Boolean allowBuildInPrecompile, Boolean throwIfNotFound, Boolean ensureIsUpToDate)     
at System.Web.Compilation.BuildManager.GetVirtualPathObjectFactory(VirtualPath virtualPath, HttpContext context, Boolean allowCrossApp, Boolean throwIfNotFound)     
at System.Web.Compilation.BuildManager.CreateInstanceFromVirtualPath(VirtualPath virtualPath, Type requiredBaseType, HttpContext context, Boolean allowCrossApp)     
at System.Web.UI.PageHandlerFactory.GetHandlerHelper(HttpContext context, String requestType, VirtualPath virtualPath, String physicalPath)     
at System.Web.HttpApplication.MaterializeHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()     
at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

編集:私は失敗したページ(クラスの名前を変更する)のいずれかのソースaspxとcsファイルをコピーして、それを解決策として公開しました。 新しいページは、失敗した相手と並んで動作します。


Answer #1

私も同じ問題がありました。

一部のページは、公開後に開くときにエラーが発生します。

私のために働いた1つの解決策は、私がそれらのエラーを表示するaspxファイルをチェックしたとき、CodeBehindではなくCodeFileを持っていた...

私はCodeFileからCodeBehindに変更し、うまくいきました。 (その理由がCodeBehindだけをbinディレクトリで利用できるのかどうかはわかりません。初心者であり、この理由が正しいとは限りません。間違っていた場合は修正してください)

しかし問題は、ローカルホスト上で特定のファイルがCodeBehindのままになっているとエラーをスローすることです。


Answer #2

適切にファイルまたはIO関連。 バイナリだけでなく、すべてのファイルをコピーしましたか? すべての古いファイルを削除して(最初にバックアップする)、書き込み保護やセキュリティ上の問題がないようにすることができます。


Answer #3

このエラーは赤いニシンになり、通常は実際のエラーを隠します。

IISアプリケーション、物理ディレクトリ、および影響を受けるファイルに対する第1のチェック許可が正しい。

権限でない場合は、カスタムエラーをWebサーバ上のRemoteOnlyに設定して、再公開してください。 .net 4では、「コンパイル済みサイトを更新可能にする」と「固定命名規則と単一ページアセンブリを使用する」のオプションを付けてアプリケーションを公開します。

Webサーバーにデプロイされると、カスタムまたはサードパーティ製のアセンブリが見つからない、または最近追加または削除された可能性のある正しい問題が見つかったはずです。これは私たちの問題であり、アセンブリはどの形式でも使われていませんでしたが、configファイルで定義されていたため、いくつかの形式を取りました)

これがあなたの問題を解決するのに役立つことを願っています - 幸運!