我已尝试压缩控制台应用并将其作为WebJob上传到Azure,就像我对其他人一样,但上传失败了。没有给出解释。
然后我尝试在那里FTP它。我把它放进去了
/site/wwwroot/App_Data/jobs/triggered/FeedbackNotifications
“FeedbackNotifications”是我的WebJob的名称。我走了this site的路径。
上传完成后,我可以看到Azure门户中列出的WebJob。但是,当我点击“运行一次”时,它会失败。日志文件包含以下内容:
[05/20/2015 15:26:22> e5f596:SYS INFO]状态已更改为 初始化
[05/20/2015 15:26:23&gt; e5f596:SYS INFO]状态已更改 <失败
[05/20/2015 15:26:23&gt; e5f596:SYS ERR]无法复制作业 files:System.IO.IOException:磁盘上没有足够的空间。
at System.IO .__ Error.WinIOError(Int32 errorCode,String maybeFullPath)at System.IO.File.InternalCopy(String sourceFileName,String destFileName,Boolean overwrite,Boolean checkHost)在System.IO.File.Copy(String sourceFileName,String destFileName,布尔覆盖)at System.IO.Abstractions.FileWrapper.Copy(String sourceFileName,String destFileName,布尔覆盖)at Kudu.Core.Infrastructure.FileSystemHelpers.CopyDirectoryRecursive(字符串 sourceDirPath,String destinationDirPath,Boolean overwrite)at Kudu.Core.Jobs.BaseJobRunner.b__0()at Kudu.Core.Infrastructure.OperationManager&LT;&GT; c__DisplayClass1.b__0() 在Kudu.Core.Infrastructure.OperationManager.Attempt [T](Func`1动作, Int32重试,Int32 delayBeforeRetry,Func`2 shouldRetry)at Kudu.Core.Infrastructure.OperationManager.Attempt(动作动作,Int32 重试,Int32 delayBeforeRetry)at Kudu.Core.Jobs.BaseJobRunner.CacheJobBinaries(JobBase job,IJobLogger) 记录器)[05/20/2015 15:26:23&gt; e5f596:SYS INFO]状态已更改为 失败[05/20/2015 15:26:23&gt; e5f596:SYS ERR] WebJob运行失败 to:System.InvalidOperationException:缺少工作目录 Kudu.Core.Jobs.BaseJobRunner.InitializeJobInstance(JobBase job, IJobLogger记录器) Kudu.Core.Jobs.TriggeredJobRunner&LT;&GT; c__DisplayClass2.b__0(对象 _)
包含所有内容的目录的总大小为115MB。
我还读过this page,这表明长文件名可能是导致错误的原因,但我的文件名不超过69个字符。
更新:我注意到当我尝试使用之前有效的其他WebJob时,会产生同样的错误。
答案 0 :(得分:3)
第一次调用WebJob时(或更新其二进制文件时),首先将其复制到%TEMP%
目录并从那里运行。
免费(sku)azure网站在Temp目录(实际上在d:\local
)中的磁盘空间有限,即500MB。
看来你已经达到了它,所以WebJob无法启动。
要验证您是否可以访问您的scm站点的调试控制台(https:// {sitename} .scm.azurewebsites.net / DebugConsole)并查询d:\local
上的可用空间(pushd d:\local
或点击地球按钮。)