2016-05-25 4 views
2

Это мой первый вопрос в SO, пожалуйста, извините меня, если у меня есть некоторые грамматические ошибки.Ошибка IIS 7: невозможно выполнить программу. Выполняется команда csc.exe (параметры по умолчанию для ApplicationPoolIdentity)

Описание проблемы:

Я 32-разрядные системы CRUD MVC 5 на основе работает на IIS 7 (Windows Server 2008) & SQL Server 2008 R2 установлен на несколько серверов, предоставляя услуги по управлению компанией интрасети с августа 2015. В течение многих месяцев все они работают бесперебойно без проблем. Тем не менее, вчера я обнаружил, что я не могу получить доступ к корневой странице сайта на сервере 172.16.1.101 с этим сообщением:

> Server Error in '/' Application. 

> [Win32Exception (0x80004005): Access is denied] 

>[ExternalException (0x80004005): Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\-(random 8-digit hex)-\-(random 8-digit hex)-\-(random 8-char base64).cmdline".] 
System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +3365 
System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) +8591876 
Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs) +331 
Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) +784 
Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch(CompilerParameters options, String[] fileNames) +170 
System.Web.Compilation.AssemblyBuilder.Compile() +12440424 
System.Web.Compilation.BuildProvidersCompiler.PerformBuild() +303 
System.Web.Compilation.ApplicationBuildProvider.GetGlobalAsaxBuildResult(Boolean isPrecompiledApp) +12978145 
System.Web.Compilation.BuildManager.CompileGlobalAsax() +50 
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +665 

>[HttpException (0x80004005): Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\-(random 8-digit hex)-\-(random 8-digit hex)-\-(random 8-char base64)-.cmdline".] 
System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() +80 
System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() +1142 
System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) +1193 

>[HttpException (0x80004005): Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\-(random 8-digit hex)-\-(random 8-digit hex)-\-(random 8-char base64)-.cmdline".] 
System.Web.HttpRuntime.FirstRequestInit(HttpContext context) +12980692 
System.Web.HttpRuntime.EnsureFirstRequestInit(HttpContext context) +159 
System.Web.HttpRuntime.ProcessRequestNotificationPrivate(IIS7WorkerRequest wr, HttpContext context) +12820285 

Вот журнал событий, когда исключение произошло:

>IIS 7 Event Log 

>Event code: 3005 

>Event message: An unhandled exception has occurred. 

>Event time: 5/24/2016 1:42:08 PM 

>Event time (UTC): 5/24/2016 6:42:08 AM 

>Event ID: 062751a2dc724be9af5de99014e58a47 

>Event sequence: 2 

>Event occurrence: 1 

>Event detail code: 0 

>Application information: 

>Application domain: /LM/W3SVC/3/ROOT-1-131085457263004464 

>Trust level: Full 

>Application Virtual Path:/

>Application Path: E:\Test\ 

>Machine name: -- edited -- 

>Process information: 

>Process ID: 1172 

>Process name: w3wp.exe 

>Account name: IIS APPPOOL\ASP.NET v4.0 

>Exception information: 

>Exception type: HttpException 

>Exception message: Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\-(random 8-digit hex)-\-(random 8-digit hex)-\-(random 8-char base64)-.cmdline". 
    at System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 
    at System.Web.Compilation.BuildManager.CallAppInitializeMethod() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 

>Cannot execute a program. The command being executed was "C:\Windows\Microsoft.NET\Framework\v4.0.30319\csc.exe" /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root\-(random 8-digit hex)-\-(random 8-digit hex)-\-(random 8-char base64).cmdline". 
    at System.CodeDom.Compiler.Executor.ExecWaitWithCaptureUnimpersonated(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) 
    at System.CodeDom.Compiler.Executor.ExecWaitWithCapture(SafeUserTokenHandle userToken, String cmd, String currentDir, TempFileCollection tempFiles, String& outputName, String& errorName, String trueCmdLine) 
    at Microsoft.CSharp.CSharpCodeGenerator.Compile(CompilerParameters options, String compilerDirectory, String compilerExe, String arguments, String& outputFile, Int32& nativeReturnValue, String trueArgs) 
    at Microsoft.CSharp.CSharpCodeGenerator.FromFileBatch(CompilerParameters options, String[] fileNames) 
    at Microsoft.CSharp.CSharpCodeGenerator.System.CodeDom.Compiler.ICodeCompiler.CompileAssemblyFromFileBatch(CompilerParameters options, String[] fileNames) 
    at System.CodeDom.Compiler.CodeDomProvider.CompileAssemblyFromFile(CompilerParameters options, String[] fileNames) 
    at System.Web.Compilation.AssemblyBuilder.Compile() 
    at System.Web.Compilation.BuildProvidersCompiler.<PerformBuild>b__1(AssemblyBuilder assemblyBuilder) 
    at System.Threading.Tasks.Parallel.<>c__DisplayClass32`2.<PartitionerForEachWorker>b__30() 
    at System.Threading.Tasks.Task.InnerInvoke() 
    at System.Threading.Tasks.Task.InnerInvokeWithArg(Task childTask) 
    at System.Threading.Tasks.Task.<>c__DisplayClass11.<ExecuteSelfReplicating>b__10(Object param0) 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw() 
    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.CompileResourcesDirectory() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 

>Access is denied 

>Request information: 

>Request URL: //172.16.1.101/ 

>Request path:/

>User host address: //172.16.1.101 

>User: 

>Is authenticated: False 

>Authentication Type: 

>Thread account name: IIS APPPOOL\ASP.NET v4.0 

>Thread information: 

>Thread ID: 5 

>Thread account name: IIS APPPOOL\ASP.NET v4.0 

>Is impersonating: True 

>Stack trace: at >System.Web.Compilation.BuildManager.ReportTopLevelCompilationException() 
    at System.Web.Compilation.BuildManager.EnsureTopLevelFilesCompiled() 
    at System.Web.Compilation.BuildManager.CallAppInitializeMethod() 
    at System.Web.Hosting.HostingEnvironment.Initialize(ApplicationManager appManager, IApplicationHost appHost, IConfigMapPathFactory configMapPathFactory, HostingEnvironmentParameters hostingParameters, PolicyLevel policyLevel, Exception appDomainCreationException) 


>Custom event details: 

Иногда показывают сообщения \ Временные файлы ASP.NET \ tls, а не \ Временные файлы ASP.NET \ корневой каталог.

Сервер IIS 7 сконфигурирован в своем состоянии по умолчанию и в одном пуле без каких-либо запущенных веб-сервисов по умолчанию (только базовые конфигурации), включая XML (de-) serializer.

Вначале считалось, что у меня есть ошибка разрешения на системную учетную запись IIS, я сделал разрешение на установку «Полный контроль» без успеха.

Таким образом, ожидается, отсутствующий файл компиляции на стороне сервера в соответствии с сообщением, пытаясь скомпилировать файлы командная_строка вручную CMD этой командой

csc.exe /noconfig /fullpaths @"C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root-(random 8-digit hex)--(random 8-digit hex)--(random 8-char base64).cmdline"

обеспечивает сообщение об ошибке:

fatal error CS2021: File name '@C:\Windows\Microsoft.NET\Framework\v4.0.30319\Temporary ASP.NET Files\root-(random 8-digit hex)--(random 8-digit hex)--(random 8-char base64).cmdline' is too long or invalid

error CS2011: Error opening response file 'c:\Windows\Microsoft.NET\Framework\v4.0.30319\root-(random 8-digit hex)--(random 8-digit hex)--(random 8-char base64).cmdline' -- 'The system cannot find the file specified. '

Won» t отказавшись, я провел поиск по этой проблеме в Google и нашел похожие аналогичные проблемы на SO:

Problems publishing a website on smarterasp.net with csc.exe file included?

https://stackoverflow.com/questions/37146958/an-unhandled-exception-was-generated-during-the-execution-of-the-current-web-re

Однако, у меня нет ни установленного пакета «Microsoft.CodeDom.Providers.DotNetCompilerPlatform», ни с помощью SOAP при компиляции проекта для реализации живого сервера, и уже есть «идентичность Impersonate =„истина“» атрибут web.config безрезультатно.

Далее я настроил пул приложений IIS, соответствующий сайту, с опцией «Дополнительные параметры», изменив раздел «Идентификация» с «ApplicationPoolIdentity» на «LocalSystem», и интересный YSOD при доступе к корневой странице ушел. Я попытался изменить его на «ApplicationPoolIdentity» и что YSOD вернулся.

Даже проблема временно решена идентификатором LocalSystem, мне все же интересно, почему произошла ошибка без каких-либо признаков сбоя системы. 2 вопроса, которые я хочу задать здесь:

  1. Может ли кто-нибудь объяснить, почему опция ApplicationPoolIdentity не работает в этом случае?

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

Т.Л., др: ApplicationPoolIdentity с конфигурацией по умолчанию на IIS 7 серверов работал до вчерашнего дня я столкнулся YSOD описано выше на сервере ни с XML сериализаторов, ни веб-служб применяются, пожалуйста, помогите мне, либо объяснить или описать то, что проблема уже возникла на сервере в деталях и способы ее смягчения.

PS: Знаки «-» и «-» должны быть заменены на «\» на пути к письменному каталогу.

+0

На какой .NET Framework вы создали проект? И какова версия .NET Framework, установленная на этой машине IIS? –

+0

Иметь такую ​​же проблему. Переключение идентификации в NetworkService также получило мой сайт обратно сейчас (СПАСИБО). В последний раз, когда я толкнул сборку, вы сразу же отправили ее. Возможно, в мае был MS-пат, который вызывает это? Вы когда-нибудь это выясняли? – imjosh

ответ

4

удалить DotNetCompilerPlatform от пакетов nuget

+0

Спасибо !!! Это мешало мне публиковать шаблон приложения ASP.Net по умолчанию на общем хосте IIS из-за проблем с безопасностью при запуске csc.exe –

 Смежные вопросы

  • Нет связанных вопросов^_^