2012-04-25 84 views
0

當我嘗試在IIS 7.5中啓動一個ASP.net網站,我收到以下錯誤IIS無法啓動:錯誤BC2000

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管理器>應用程序池>高級設置用戶>身份)。但這似乎並不安全。

所以我的問題是:爲什麼它不與「內置帳戶」(我試過ApplicationPoolIdentity和NetworkService)。

回答

0

授予完全訪問用戶的「網絡服務」文件夾C:\ WINDOWS \ TEMP

+0

我做到了,是我試圖 – ariel 2012-06-27 02:58:02

+0

我最後的第一件事通過完全控制%TEMP%文件夾中的每個人來解決這個問題 – Rodrigo 2012-07-04 21:50:50

1

嘗試以下步驟 -

  1. 設置真「啓用32位應用程序」作爲默認應用程序池,如果您在x64機器上運行。

  2. 授予完全進入有關網絡服務IIS_IUSRS

C:\ WINDOWS \ TEMP \

  • 格蘭特NETWORK SERVICE and IIS_IUSRS
  • C:\ WINDOWS \ Microsoft.NET \框架\ V2.0.50727 \臨時ASP.NET文件\