11

私はこのエラーにうんざりしています。私はウェブ全体を検索し、見つけたこのエラーに対して可能な限りの提案を試みました。

  1. app_code を削除し、ビルドし、ファイルを追加し直して、公開します。(動作しませんでした)
  2. 一時的なasp.netファイルを削除します(機能しませんでした)

最後に、コマンドラインを試してみて、次のスタックトレースを取得しました。

error ASPRUNTIME: Object reference not set to an instance of an object.

[NullReferenceException]: Object reference not set to an instance of an object.
   at System.Web.Compilation.BuildManager.CopyPrecompiledFile(VirtualFile vfile,
 String destPhysicalPath)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.CopyStaticFilesRecursive(VirtualDirect
ory sourceVdir, String destPhysicalDir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath star
tingVirtualDir)
   at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirt
ualDir)
   at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallba
ck callback)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa
llback callback)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCa
llback callback)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil
dManagerCallback callback, Boolean forceCleanBuild)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuil
dManagerCallback callback)
   at System.Web.Compilation.Precompiler.Main(String[] args)

次のコマンドラインを使用しました。

aspnet_compiler.exe -p d:\code\websites\brokerweb -v / d:\code\websites\published -f -c -errorstack -u
4

14 に答える 14

9

このエラーは、MSBUILD を使用してプロジェクトをコンパイルしようとしたときに発生していました。Visual Studio 内で正常にビルドされ、ローカル ブラウザーでデバッグすることさえできました。VS 内の Publish オプションも機能しました。しかし、コマンドラインの MSBUILD が原因で、毎回プロジェクトでエラーが発生していました。

Web サイトのプロパティ ページを開き、[MSBuild オプション] タブを開き、[このプリコンパイル済みサイトを更新可能にする] オプションのチェックを外し、[すべて保存] をクリックすることで、VS 2012 でこの問題を解決できました。

于 2014-10-23T20:44:55.757 に答える
5

これは通常*.dll.refresh、ディレクトリ内のファイルがbin使用できなくなった場所を指している場合に発生します。*.dll.refreshファイルを削除すると、問題が解決するはずです。

于 2012-05-30T00:33:40.173 に答える
4

これが古い投稿であることは知っていますが、誰かがこれを役に立つと思う場合に備えて:

私にとってこの問題の原因は、マカフィーのアンチウイルスでした

ASPNETCOMPILER(0,0): エラー ASPRUNTIME: オブジェクト参照がオブジェクトのインスタンスに設定されていません

于 2014-11-19T15:31:52.067 に答える
2

MVC WebApplication でビューをコンパイルするときに、同様の問題が発生しました。NullReferenceException は、VS または MSBuild 内でソリューションをビルドする場合にのみスローされました。コマンド ラインから aspnet_compiler.exe を実行してもエラーは発生しませんでした。

error ASPRUNTIME: Object reference not set to an instance of an object.

[NullReferenceException]: Object reference not set to an instance of an object.
   at System.Web.Compilation.DiskBuildResultCache.CacheBuildResult(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart)
   at System.Web.Compilation.BuildManager.CacheBuildResultInternal(String cacheKey, BuildResult result, Int64 hashCode, DateTime utcStart)
   at System.Web.Compilation.WebDirectoryBatchCompiler.CacheAssemblyResults(AssemblyBuilder assemblyBuilder, CompilerResults results)
   at System.Web.Compilation.WebDirectoryBatchCompiler.CompileAssemblyBuilder(AssemblyBuilder builder)
   at System.Web.Compilation.WebDirectoryBatchCompiler.<CompileNonDependentBuildProviders>b__0(AssemblyBuilder assemblyBuilder)
   at System.Web.Compilation.CompilationUtil.CompileParallel(ICollection assemblyBuilders, Action`1 action)
   at System.Web.Compilation.WebDirectoryBatchCompiler.CompileNonDependentBuildProviders(ICollection buildProviders)
   at System.Web.Compilation.WebDirectoryBatchCompiler.Process()
   at System.Web.Compilation.BuildManager.BatchCompileWebDirectoryInternal(VirtualDirectory vdir, Boolean ignoreErrors)
   at System.Web.Compilation.BuildManager.BatchCompileWebDirectory(VirtualDirectory vdir, VirtualPath virtualDir, Boolean ignoreErrors)
   at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.PrecompileWebDirectoriesRecursive(VirtualDirectory vdir, Boolean topLevel)
   at System.Web.Compilation.BuildManager.PrecompileAppInternal(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
   at System.Web.Compilation.BuildManager.PrecompileApp(VirtualPath startingVirtualDir, IEnumerable`1 excludedVirtualPaths)
   at System.Web.Compilation.BuildManager.PrecompileApp(ClientBuildManagerCallback callback, IEnumerable`1 excludedVirtualPaths)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
   at System.Web.Compilation.BuildManagerHost.PrecompileApp(ClientBuildManagerCallback callback, List`1 excludedVirtualPaths)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback, Boolean forceCleanBuild)
   at System.Web.Compilation.ClientBuildManager.PrecompileApplication(ClientBuildManagerCallback callback)
   at System.Web.Compilation.Precompiler.Main(String[] args)

Web で回答を探し、ProcessMonitor で発見した 1 日の後、コンパイラが ReportService.svc ファイルをコンパイルしようとしたときに、それが起こっていることがわかりました。このファイルが削除されたか、拡張子の名前が変更された場合、すべてが正常にコンパイルされました。非常に奇妙な解決策により、svc ファイルのコンパイルの問題が修正されました。数日前、スペースを節約するために、このプロジェクトで ntfs 圧縮をオンにしました。そして、これが唯一の問題でした。Web サイト フォルダから ntfs 圧縮属性を削除すると、NullReferenceException の問題が解決されました。

于 2013-05-14T19:28:03.020 に答える
1

最近、このエラーが発生しました。上記の @samiz のように、まず、すべての *.dll.Refresh を削除してから、Web サイトをビルドして公開する必要があります。ただし、私の場合のように、*.dll.refresh を削除してから Web サイトを公開すると、いつものようにエラーが通知されます。私は多くのテストを行いましたが、何も変わりません。

また、新しいフォルダーを作成し、Web サイトに必要なすべての *.dll をコピーします。次に、Bin フォルダー内の *.dll をすべて削除してから、1 つずつ追加します。

最後に、PC を再起動して、Web サイトを公開しようとしました。信じられないかもしれませんが、正常に動作し、エラーは発生しませんでした。

于 2014-07-21T10:56:27.820 に答える
1

同様の問題がありました。アプリケーションは IDE でビルドおよび実行されますが、公開できません。「dllを単一のアセンブリにマージする」段階でうまくいきません。aspnet_merge.exe を調査した結果、公開オプションの [デバッグ情報を出力する] チェックボックスをオフにすることで問題が解決されることがわかりました。

これは問題の「完全な」修正ではないかもしれませんが、回避策です。

お役に立てれば。

アンドリュー

于 2014-07-31T09:17:57.840 に答える
0

Web サービスを公開しようとしたときに、同じ問題が発生しました。問題は、Web サイトをディレクトリに公開するときに作成される PrecompiledApp.config ファイルが、何らかの方法でプロジェクトに追加されたことです。それを追加すると、エラーが発生しました。

解決策: Visual Studio のプロジェクト ツリーからファイルを削除した後、プリコンパイル済みの設定を有効/チェックして、Web サービスを再度公開することができました。

于 2015-11-20T09:07:29.237 に答える
0

私の場合、Cookie をクリアすると問題が解決しました。

StackTraceは、いくつかの認証と Cookie について言及していました。Web アプリケーションをInCognito モード(Cookie ストアを保持しないモード) で開いたところ、アプリが動作していることがわかりました。

それが誰かに役立つことを願っています。

于 2015-06-24T09:20:54.887 に答える
-2

Visual Studio を VS 2013 にアップグレードしてください。これで問題は解決しました。:)

于 2014-04-05T06:05:59.947 に答える