2015-05-20 3 views
1

Я попытался закрепить консольное приложение и загрузить его в Azure как WebJob, как это было сделано с другими, но загрузка не удалась. Никаких объяснений не приводится.Azure WebJobs: на диске недостаточно места

Итак, я попробовал FTP-соединение там. Я положил его в

/site/wwwroot/App_Data/jobs/triggered/FeedbackNotifications 

Где «FeedbackNotifications» - это имя моего WebJob. Я пошел по пути от this site.

Загрузка завершена, и я вижу WebJob, указанный на портале Azure. Однако, когда я нажимаю «Запуск один раз», он терпит неудачу. Файл журнала содержит следующее:

[05/20/2015 15:26:22> e5f596: SYS INFO] Статус изменен на Initializing

[05/20/2015 15:26:23 > e5f596: SYS INFO] Статус изменился к Failed

[05/20/2015 15:26:23> e5f596: SYS ERR] не удалось скопировать работу файлы: System.IO.IOException: Существует не хватает места на диске.

на System.IO .__ Error.WinIOError (Int32 ERRORCODE, Строка maybeFullPath) при System.IO.File.InternalCopy (String sourceFileName, String DestFileName, булева перезапись, булева checkHost) при System.IO.File. Copy (String sourceFileName, String DestFileName, Boolean перезапись) в System.IO.Abstractions.FileWrapper.Copy (String sourceFileName, String DestFileName, Boolean перезапись) в Kudu.Core.Infrastructure.FileSystemHelpers.CopyDirectoryRecursive (String sourceDirPath, String destinationDirPath, Boolean overwrite) на Kudu.Core.Jobs.BaseJobRunner.b__0() на Куд u.Core.Infrastructure.OperationManager. <> c__DisplayClass1.b__0() в Kudu.Core.Infrastructure.OperationManager.Attempt [T] (действие Func`1, Int32, Int32 повторами delayBeforeRetry, Func ` 2 shouldRetry) при Kudu.Core.Infrastructure.OperationManager.Attempt (Действие, Int32 повторений, Int32 delayBeforeRetry) в Kudu.Core.Jobs.BaseJobRunner.CacheJobBinaries (JobBase job, IJobLogger logger) [20.05.2005 15:26:23> e5f596: SYS INFO] Статус изменен на Failed [05/20/2015 15:26:23> e5f596: SYS ERR] WebJob запустить не удалось из-за к: System.InvalidOperationException: Отсутствует рабочий каталог на Kudu.Core.Jobs.BaseJobRunner.InitializeJobInstance (JobBase работы, IJobLogger Logge r) в Kudu.Core.Jobs.TriggeredJobRunner. <> c__DisplayClass2.b__0 (Object _)

Общий размер каталога, который содержит все 115MB.

Я также читал this page, который предполагает, что причиной возникновения ошибки могут быть длинные имена файлов, но у меня нет имен файлов более 69 символов.

UPDATE: Я заметил, что, когда я пытаюсь использовать еще один WebJob, который ранее работал, он несет ту же ошибку.

+0

Вы используете бесплатный сайт? –

+0

Нет, это часть нашей подписки MSDN с неограниченными расходами. – awj

+1

Но является ли сайт сам бесплатным сайтом? (sku плана, который использует сайт) –

ответ

3

Когда WebJob вызывается в первый раз (или когда его двоичные файлы обновляются), он сначала копируется в каталог %TEMP% и будет запускаться оттуда.

Бесплатные (sku) azure сайты имеют ограниченное количество дискового пространства в каталоге Temp (фактически в d:\local), который составляет 500 МБ. Кажется, вы дошли до него, поэтому WebJob не запускается.

Для проверки вы можете перейти на консоль отладки вашего Scm сайта (https: // {имя_сайта} .scm.azurewebsites.net/DebugConsole) и запрос для свободного пространства на d:\local (pushd d:\local или нажав на кнопку Земли).

+0

Это очень вероятно причина. Я только что настроил сайт с «Свободного» на «Базовый», и он запустил (он не удался, но из-за исключения в моем коде). В этом случае повторяющиеся загрузки с незначительными изменениями кода считаются последовательно «первым запуском»? В противном случае, зачем он запускался и только понесет ошибку после нескольких изменений и повторной загрузки? Кроме того, если я удалю WebJob, это также удалит из '% TEMP%'? – awj

+1

WebJob удален из '% TEMP%', но с наилучшими усилиями, поэтому там могут быть некоторые остающиеся файлы, перезагрузка на сайт приведет к удалению каталога TEMP, а также вы сможете просмотреть его и посмотреть, что там есть. –

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