2015-05-01 2 views
1

Im пытается запустить PHP-скрипт на Azure WebJobs. Это работало отлично до недавнего времени, когда я повторно развертывал приложение. Теперь любой PHP скрипт я пытаюсь загрузить отказывается загружать давая мне следующие ошибки ошибки в лог-файле:Azure WebJob возвращает «Система не может найти указанный файл»

[05/01/2015 13:21:25 > 611c38: SYS INFO] Status changed to Initializing 
[05/01/2015 13:21:25 > 611c38: SYS INFO] Run script 'test.php' with script host - 'PhpScriptHost' 
[05/01/2015 13:21:25 > 611c38: SYS INFO] Status changed to Running 
[05/01/2015 13:21:25 > 611c38: ERR ] The system cannot find the file specified 
[05/01/2015 13:21:25 > 611c38: SYS INFO] Status changed to Failed 
[05/01/2015 13:21:25 > 611c38: SYS ERR ] System.AggregateException: One or more errors occurred. ---> System.ComponentModel.Win32Exception: The system cannot find the file specified 
    at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 
    at System.Diagnostics.Process.Start() 
    at Kudu.Core.Infrastructure.ProcessWrapper.Start() 
    at Kudu.Core.Infrastructure.ProcessExtensions.<Start>d__a.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Kudu.Core.Infrastructure.Executable.<ExecuteAsync>d__1d.MoveNext() 
    --- End of inner exception stack trace --- 
    at System.Threading.Tasks.Task.ThrowIfExceptional(Boolean includeTaskCanceledExceptions) 
    at System.Threading.Tasks.Task`1.GetResultCore(Boolean waitCompletionNotification) 
    at System.Threading.Tasks.Task`1.get_Result() 
    at Kudu.Core.Infrastructure.Executable.ExecuteInternal(ITracer tracer, Func`2 onWriteOutput, Func`2 onWriteError, Encoding encoding, String arguments, Object[] args) 
    at Kudu.Core.Infrastructure.Executable.ExecuteReturnExitCode(ITracer tracer, Action`1 onWriteOutput, Action`1 onWriteError, String arguments, Object[] args) 
    at Kudu.Core.Jobs.BaseJobRunner.RunJobInstance(JobBase job, IJobLogger logger, String runId) 
---> (Inner Exception #0) System.ComponentModel.Win32Exception (0x80004005): The system cannot find the file specified 
    at System.Diagnostics.Process.StartWithCreateProcess(ProcessStartInfo startInfo) 
    at System.Diagnostics.Process.Start() 
    at Kudu.Core.Infrastructure.ProcessWrapper.Start() 
    at Kudu.Core.Infrastructure.ProcessExtensions.<Start>d__a.MoveNext() 
--- End of stack trace from previous location where exception was thrown --- 
    at System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task) 
    at System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task) 
    at Kudu.Core.Infrastructure.Executable.<ExecuteAsync>d__1d.MoveNext()<--- 

Проблема сохраняется на любом веб-приложение, которое я развернутого на Azure.

+0

Похоже, что он не может найти файл test.php Загружается ли он на сервер в нужном месте? –

+0

Да, он был загружен в виде zip-файла через портал. Я могу проверить, что php-файл находится в правильном месте через FTP до Azure. – Martin

+0

Вы проверили разрешения на файл и каталог –

ответ

3

проверка PHP во время выполнения установки;)

2

Вопрос заключается в том, что поддержка PHP была отключена на приборной панели. Azure смог найти мой php-скрипт, и у него были права читать его. Когда он попытался выполнить сценарий, он не смог бы найти среду выполнения, поскольку она была отключена с помощью панели управления. Мог бы спасти меня в течение нескольких часов работы, если бы он мог сказать, что php был отключен, вместо того, чтобы говорить, что он не может найти какой-либо файл.

Всегда проверяйте, чтобы сценарий, выполняемый для исполняемого скрипта, включен на портале.