Неизвестная ошибка при запуске java.exe из приложения ASP.NET

В этих строках кода:

// Run compiler
Process p = System.Diagnostics.Process.Start("java.exe", ex);
p.WaitForExit();

Мы получаем эту ошибку:

Server Error in '/' Application.

Unknown error (0xfffffffe)

Description: An unhandled exception occurred during the execution of the current web request. Please review the stack trace for more information about the error and where it originated in the code. 

Exception Details: System.ComponentModel.Win32Exception: Unknown error (0xfffffffe)

Source Error: 

An unhandled exception was generated during the execution of the current web request. Information regarding the origin and location of the exception can be identified using the exception stack trace below.

Stack Trace: 


[Win32Exception (0x80004005): Unknown error (0xfffffffe)]
   System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo) +912
   System.Diagnostics.Process.Start() +136
   System.Diagnostics.Process.Start(ProcessStartInfo startInfo) +49
   Arcade.UploadFunctions.minifyC2Runtime(Int32 GameID) +333
   Arcade.GameFunctions.createGame(Int32 CatID, String Name, String Description, String Instructions, Int32 UserId, Int32 Width, Int32 Height, Int32 ParentGameID) +1338
   ArcadeSubmit.submitGame(Object sender, EventArgs e) +1329
   System.Web.UI.WebControls.Button.OnClick(EventArgs e) +118
   System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument) +112
   System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
   System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
   System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +36
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +5563

Version Information: Microsoft .NET Framework Version:4.0.30319; ASP.NET Version:4.0.30319.272

Как отмечалось в моем другом вопросе, похоже, это ошибка разрешений. Однако эта ошибка исчезает, если я перезапускаю свой пул приложений. Затем он снова начинает выдавать эту ошибку в течение нескольких часов или около того.

Рассматриваемый пул приложений работает с идентификатором LocalService. Кто-нибудь знает, из-за чего это может сломаться?

Изменить: дополнительная информация об ошибке в средстве просмотра событий

Event code: 3005 
Event message: An unhandled exception has occurred. 
Event time: 2/29/2012 8:15:12 AM 
Event time (UTC): 2/29/2012 8:15:12 AM 
Event ID: 6b5770960c4f41b1a9ba10045b7b50d4 
Event sequence: 131746 
Event occurrence: 480 
Event detail code: 0 
 
Application information: 
    Application domain: /LM/W3SVC/1/ROOT-26-129749512365140162 
    Trust level: Full 
    Application Virtual Path: / 
    Application Path: C:\inetpub\wwwroot\Scirra\ 
    Machine name: WIN-MT04GJ7U5CB 
 
Process information: 
    Process ID: 8276 
    Process name: w3wp.exe 
    Account name: NT AUTHORITY\LOCAL SERVICE 
 
Exception information: 
    Exception type: Win32Exception 
    Exception message: Unknown error (0xfffffffe)
   at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Arcade.UploadFunctions.minifyC2Runtime(Int32 GameID)
   at Arcade.GameFunctions.createGame(Int32 CatID, String Name, String Description, String Instructions, Int32 UserId, Int32 Width, Int32 Height, Int32 ParentGameID)
   at ArcadeSubmit.submitGame(Object sender, EventArgs e)
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)

 
 
Request information: 
    Request URL: http://www.scirra.com/ArcadeSubmit.aspx 
    Request path: /ArcadeSubmit.aspx 
    User host address: [censored] 
    User:  
    Is authenticated: False 
    Authentication Type:  
    Thread account name: NT AUTHORITY\LOCAL SERVICE 
 
Thread information: 
    Thread ID: 5 
    Thread account name: NT AUTHORITY\LOCAL SERVICE 
    Is impersonating: False 
    Stack trace:    at System.Diagnostics.Process.StartWithShellExecuteEx(ProcessStartInfo startInfo)
   at System.Diagnostics.Process.Start()
   at System.Diagnostics.Process.Start(ProcessStartInfo startInfo)
   at Arcade.UploadFunctions.minifyC2Runtime(Int32 GameID)
   at Arcade.GameFunctions.createGame(Int32 CatID, String Name, String Description, String Instructions, Int32 UserId, Int32 Width, Int32 Height, Int32 ParentGameID)
   at ArcadeSubmit.submitGame(Object sender, EventArgs e)
   at System.Web.UI.WebControls.Button.OnClick(EventArgs e)
   at System.Web.UI.WebControls.Button.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.WebControls.Button.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument)
   at System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData)
   at System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint)
 
 
Custom event details: 

person Tom Gullen    schedule 28.02.2012    source источник
comment
Когда вы ранее задавали этот вопрос, я предполагаю, что ответ не Работа?   -  person Justin Helgerson    schedule 28.02.2012
comment
Мне мой титул нравится больше, чем твой.   -  person John Saunders    schedule 28.02.2012
comment
@Ek0nomik это сработало, но с тех пор мы переехали на новый сервер, который ведет себя по-другому. Некоторое время работает, потом выдает эту ошибку. На нашем старом сервере все работало нормально.   -  person Tom Gullen    schedule 28.02.2012
comment
Интересный. Вы запускаете процесс с какими-либо параметрами? Делает ли процесс какие-либо запросы в другом месте на вашем сервере, где у него может не быть надлежащего разрешения? Вы проверили EventLog, чтобы увидеть, есть ли у Windows Server какие-либо предупреждения безопасности?   -  person Justin Helgerson    schedule 28.02.2012
comment
@Ek0nomik Ek0nomik Да, параметры "-jar \"" + Settings.ClosureCompilerJarLocation + "\" --js \"" + C2runtimePath + "\" --js_output_file \"" + C2runtimeCompiledPath + "\" --language_in ECMASCRIPT5_STRICT --compilation_level ADVANCED_OPTIMIZATIONS --externs \"" + Settings.C2ExternsFolderLocation + "jquery-externs.js\" --externs \"" + Settings.C2ExternsFolderLocation + "c2-externs.js\"";, работает компилятор закрытия Google. Я получил более подробную информацию об ошибке из журналов, которые я разместил выше.   -  person Tom Gullen    schedule 29.02.2012
comment
Насколько я могу судить, все разрешения настроены правильно (все работает нормально в течение пары часов/несколько запросов перед сбоем)   -  person Tom Gullen    schedule 29.02.2012
comment
Я добавил <identity impersonate="true" /> в web.config, это может помочь?   -  person Tom Gullen    schedule 29.02.2012
comment
Identity Impersonate делает весь сайт невосприимчивым   -  person Tom Gullen    schedule 29.02.2012
comment
@TomGullen - Из любопытства, почему вы динамически запускаете компилятор закрытия? Вы принимаете ввод скрипта от пользователя? Во всяком случае, я не уверен, что вызывает вашу проблему, к сожалению. Олицетворение просто приведет к тому, что поток вашего веб-приложения будет запущен под определенным идентификатором. Технически вы могли бы настроить разрешения для учетной записи по умолчанию, и это было бы промывкой (но, если вы настроите это для учетной записи, вы захотите выполнить aspnet_regiis, чтобы дать учетной записи соответствующие разрешения).   -  person Justin Helgerson    schedule 29.02.2012
comment
@Ek0nomik мы запускаем аркаду HTML5: scirra.com/arcade, где люди загружают свои собственные игры, созданные в нашей программное обеспечение, мы запускаем загруженный JS через компилятор закрытия.   -  person Tom Gullen    schedule 29.02.2012
comment
Я полагаю, что теперь это исправлено путем изменения идентификатора пула приложений с локальной службы на локальную систему. отвечу на вопрос если получится   -  person Tom Gullen    schedule 02.03.2012