Azure webjobs“;无效的容器名称";间歇误差

Azure webjobs“;无效的容器名称";间歇误差,azure,runtime-error,azure-storage,azure-storage-blobs,azure-webjobs,Azure,Runtime Error,Azure Storage,Azure Storage Blobs,Azure Webjobs,我一直在用一块水滴手表写一份网络作业(比如) 在没有任何警告的情况下,我不时收到来自该行的“无效容器名称”异常 host.RunAndBlock(); 尽管没有更改App.config中的容器名称,并且在访问blob存储的所有其他方法都有效的情况下 这里有一个堆栈跟踪,供任何想查看它的人使用: The thread '<No Name>' (0x17bc) has exited with code 0 (0x0). at System.Environment.GetStack

我一直在用一块水滴手表写一份网络作业(比如)

在没有任何警告的情况下,我不时收到来自该行的“无效容器名称”异常

host.RunAndBlock();
尽管没有更改App.config中的容器名称,并且在访问blob存储的所有其他方法都有效的情况下

这里有一个堆栈跟踪,供任何想查看它的人使用:

The thread '<No Name>' (0x17bc) has exited with code 0 (0x0).
   at System.Environment.GetStackTrace(Exception e, Boolean needFileInfo)
   at System.Environment.get_StackTrace()
   at BarcodeJob.Program.Main() in c:\Users\Nik\Documents\Visual Studio 2012\Projects\BarcodeJob\BarcodeJob\Program.cs:line 34
   at System.AppDomain._nExecuteAssembly(RuntimeAssembly assembly, String[] args)
   at System.AppDomain.ExecuteAssembly(String assemblyFile, Evidence assemblySecurity, String[] args)
   at Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()
   at System.Threading.ThreadHelper.ThreadStart_Context(Object state)
   at System.Threading.ExecutionContext.RunInternal(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state, Boolean preserveSyncCtx)
   at System.Threading.ExecutionContext.Run(ExecutionContext executionContext, ContextCallback callback, Object state)
   at System.Threading.ThreadHelper.ThreadStart()
线程“”(0x17bc)已退出,代码为0(0x0)。
位于System.Environment.GetStackTrace(异常e,布尔needFileInfo)
在System.Environment.get_StackTrace()中
在c:\Users\Nik\Documents\Visual Studio 2012\Projects\BarcodeJob\BarcodeJob\Program.cs中的BarcodeJob.Program.Main()处:第34行
位于System.AppDomain.\u nExecuteAssembly(RuntimeAssembly程序集,字符串[]args)
位于System.AppDomain.ExecuteAssembly(字符串汇编文件、证据汇编安全性、字符串[]args)
在Microsoft.VisualStudio.HostingProcess.HostProc.RunUsersAssembly()上
位于System.Threading.ThreadHelper.ThreadStart\u上下文(对象状态)
位于System.Threading.ExecutionContext.RunInternal(ExecutionContext ExecutionContext、ContextCallback回调、对象状态、布尔值preserveSyncCtx)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态,布尔保存SyncCTX)
在System.Threading.ExecutionContext.Run(ExecutionContext ExecutionContext,ContextCallback回调,对象状态)
位于System.Threading.ThreadHelper.ThreadStart()处

以及错误消息

System.FormatException: Invalid container name: 
   at Microsoft.WindowsAzure.Jobs.BlobClient.ValidateContainerName(String containerName)
   at Microsoft.WindowsAzure.Jobs.CloudBlobPath..ctor(String blobInput)
   at Microsoft.WindowsAzure.Jobs.LogRow.ToPath()
   at Microsoft.WindowsAzure.Jobs.BlobLogListener.<GetRecentBlobWrites>d__0.MoveNext()
   at Microsoft.WindowsAzure.Jobs.BlobListener.Poll(Action`1 callback, CancellationToken cancel)
   at Microsoft.WindowsAzure.Jobs.Listener.PollBlobs(CancellationToken token)
   at Microsoft.WindowsAzure.Jobs.Listener.Poll(CancellationToken token)
   at Microsoft.WindowsAzure.Jobs.Worker.Poll(CancellationToken token)
   at Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock(CancellationToken token, Action pauseAction)
   at Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock(CancellationToken token)
   at Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock()
   at BarcodeJob.Program.Main() in c:\Users\Nik\Documents\Visual Studio 2012\Projects\BarcodeJob\BarcodeJob\Program.cs:line 30
System.FormatException:无效的容器名称:
位于Microsoft.WindowsAzure.Jobs.BlobClient.ValidateContainerName(字符串containerName)
位于Microsoft.WindowsAzure.Jobs.CloudBlobPath..ctor(字符串blobInput)
在Microsoft.WindowsAzure.Jobs.LogRow.ToPath()上
在Microsoft.WindowsAzure.Jobs.BlobLogListener.d_u0.MoveNext()上
在Microsoft.WindowsAzure.Jobs.BlobListener.Poll(操作'1回调,取消令牌取消)
位于Microsoft.WindowsAzure.Jobs.Listener.PollBlobs(CancellationToken令牌)
在Microsoft.WindowsAzure.Jobs.Listener.Poll上(CancellationToken令牌)
在Microsoft.WindowsAzure.Jobs.Worker.Poll上(CancellationToken令牌)
在Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock上(CancellationToken令牌,Action pauseAction)
位于Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock(CancellationToken令牌)
在Microsoft.WindowsAzure.Jobs.JobHost.RunAndBlock()上
在c:\Users\Nik\Documents\Visual Studio 2012\Projects\BarcodeJob\BarcodeJob\Program.cs中的BarcodeJob.Program.Main()处:第30行

这更多的是一个bug报告,而不是一个实际问题。。。所以这里没有一个具体的问题需要回答,但我可以确认callstack肯定会证明它是WebJobs SDK中的一个bug。我们已经提交了一个bug,希望在alpha2版本中修复它。发布是通过nuget完成的,因此Alpha 2将显示在:

这看起来像是SDK blob侦听代码中间的崩溃。您是否有其他可能正在创建/删除容器的存储帐户运行的东西?也许这会让听众大吃一惊。看起来containerName是空的或空白。发生这种情况时,您是否碰巧知道CloudBlobPath..ctor()的blobInput参数是什么?运行的唯一其他实体是Azure storage viewer,因此没有-没有任何内容是创建或删除容器。我的任务是复制并删除CloudBlockBlob对象中的blob。尽管我用该代码进行了测试,但仍然存在这个问题。下面是我对blobinput参数的调用:publicstaticvoidrunnewupload([blobinput(“input/{name}.pdf”)]流输入,字符串名,[BlobOutput(“output/{name}.pdf”)]流输出){(新到.net/azure)您在调用堆栈中的何处看到上述指控?调用堆栈在MS.WindowsAzure.Jobs中显示帧,这是WebJobs SDK的程序集。