我有一个Azure功能,该功能应处理存储帐户容器中的文件。应该每天触发Azure功能。但是每周一次或两次,我看到容器中的某些文件未得到处理:(由于错误403,开始时未处理600个文件中的401个文件)
正如我在Stackoverflow中阅读的。这是因为SAS令牌时间偏斜。我的代码没有大的改动就可以解决这个问题吗?
我的代码:
CloudStorageaccount sa;
CloudStorageaccount.TryParse("MyConnString",out sa);
_blobClient = sa.CreatecloudBlobClient();
ICloudBlob sourceBlob = _blobClient.GetBlobReferenceFromServer(new Uri(BlobUrl));
更新
执行功能时出现消息异常: process_files_by_http_trigger_activity远程服务器返回了一个 错误:(403)禁止。远程服务器返回错误:(403) 禁止。
调用堆栈:
microsoft.Azure.WebJobs.Host.FunctioninvocationException:在 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__16.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__13.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35)内部异常 microsoft.WindowsAzure.Storage.StorageException在以下位置处理 System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw:在 microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync (microsoft.WindowsAzure.Storage,版本= 7.2.1.0,文化=中性, PublicKeyToken = 31bfxxxx64e35microsoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: c:\ Program档案 (x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClasslibraryCommon \ Core \ Executor \ Executor.csmicrosoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: 604)在 microsoft.WindowsAzure.Storage.Blob.CloudBlobClient.GetBlobReferenceFromServer (microsoft.WindowsAzure.Storage,版本= 7.2.1.0,文化=中性, PublicKeyToken = 31bfxxxx64e35microsoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: c:\ Program档案 (x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClasslibraryCommon \ Blob \ CloudBlobClient.csmicrosoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: 563)在 microsoft.WindowsAzure.Storage.Blob.CloudBlobClient.GetBlobReferenceFromServer (microsoft.WindowsAzure.Storage,版本= 7.2.1.0,文化=中性, PublicKeyToken = 31bfxxxx64e35microsoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: c:\ Program档案 (x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClasslibraryCommon \ Blob \ CloudBlobClient.csmicrosoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: 546)在 bip.dev.afu.inbound.we.process_xz_files_by_http_trigger.XzFileMove (bip.dev.afu.inbound.we,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null) bip.dev.afu.inbound.we.process_xz_files_by_http_trigger + d__10.MoveNext (bip.dev.afu.inbound.we,Version = 1.0.0.0,Culture = neutral, PublicKeyToken = null) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.VoidTaskMethodInvoker
2+<InvokeAsync>d__2.MoveNext (microsoft.Azure.WebJobs.Host,Version=2.4.0.0,Culture=neutral,PublicKeyToken=31bfxxxx64e35) at System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,Version=4.0.0.0,PublicKeyToken=b7xxxx934e089) at System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,PublicKeyToken=b7xxxx934e089) at microsoft.Azure.WebJobs.Host.Executors.FunctionInvoker
2 + d__9.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__24.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__23.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__22.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35) System.Runtime.CompilerServices.Taskawaiter.ThrowForNonSuccess (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.HandleNonSuccessAndDebuggerNotification (mscorlib,版本= 4.0.0.0,文化=中性, PublicKeyToken = b7xxxx934e089) System.Runtime.CompilerServices.Taskawaiter.ValidateEnd(mscorlib, 版本= 4.0.0.0,文化=中性,PublicKeyToken = b7xxxx934e089)
在 microsoft.Azure.WebJobs.Host.Executors.FunctionExecutor + d__16.MoveNext (microsoft.Azure.WebJobs.Host,版本= 2.4.0.0,文化=中性, PublicKeyToken = 31bfxxxx64e35)内部异常 System.Net.WebException处理 microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync:
在System.Net.HttpWebRequest.GetResponse(System,Version = 4.0.0.0, 文化=中立,PublicKeyToken = b7xxxx934e089) microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync (microsoft.WindowsAzure.Storage,版本= 7.2.1.0,文化=中性, PublicKeyToken = 31bfxxxx64e35microsoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 31bfxxxx64e35: c:\ Program档案 (x86)\ Jenkins \ workspace \ release_dotnet_master \ Lib \ ClasslibraryCommon \ Core \ Executor \ Executor.csmicrosoft.WindowsAzure.Storage, 版本= 7.2.1.0,文化=中性,PublicKeyToken = 3xxxxx6ad364e35: 677)