IIS 7.5 で ASP.net サイトを開始しようとすると、次のエラーが表示されます。
BC2000: compiler initialization failed unexpectedly: 0x80070005
C:\Windows\Temp フォルダーのセキュリティ設定に移動し、ユーザー「NETWORK SERVICE」および IIS_IUSRS にフル コントロール権限を追加します。
しかし、私はそれをしましたが、エラーは続きます。
私のマシンでは、 %temp% は C:\Users\sp\AppData\Local\Temp を指しており、これらの権限も持っています。
また、ユーティリティ「aspnet_regiis」を使用して ASP を再インストールしてみました。
完全なイベント ログ エントリ (アプリケーション警告 1310) は次のとおりです。
Event code: 3007
Event message: A compilation error has occurred.
Event ID: 733bee25fcbe4f0ab74b7fc56ce833d7
Event sequence: 3
Event occurrence: 1
Event detail code: 0
Application information:
Application domain: /LM/W3SVC/5/ROOT-1-129798160562503533
Trust level: Full
Application Virtual Path: /
Process information:
Process ID: 8040
Process name: w3wp.exe
Account name: IIS APPPOOL\myapp
Exception information:
Exception type: HttpCompileException
Exception message: vbc : Fatal (0): error BC2000: compiler initialization failed unexpectedly: 0x80070005
Request information:
User host address: ::1
User:
Is authenticated: False
Authentication Type:
Thread account name: sp-PC\sp
Thread information:
Thread ID: 8
Thread account name: sp-PC\sp
Is impersonating: False
Stack trace: at System.Web.Compilation.AssemblyBuilder.Compile()
at System.Web.Compilation.BuildProvidersCompiler.PerformBuild()
at System.Web.Compilation.CodeDirectoryCompiler.GetCodeDirectoryAssembly(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories, Boolean isDirectoryAllowed)
at System.Web.Compilation.BuildManager.CompileCodeDirectory(VirtualPath virtualDir, CodeDirectoryType dirType, String assemblyName, StringSet excludedSubdirectories)
at System.Web.Compilation.BuildManager.CompileCodeDirectories()
at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled()
at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters)
そこで、アプリケーション プールのユーザーをマシン管理者に変更しました (IIS マネージャー > アプリケーション プール > 詳細設定 > ID)。しかし、それはあまり安全ではないようです。
私の質問は、「ビルトイン アカウント」で動作しない理由です (ApplicationPoolIdentity と NetworkService を試しました)。