簡體   English   中英

Azure Webjob HTTP 409 沖突錯誤

[英]Azure Webjob HTTP 409 Conflict errors

我有一個 C# WebJob,它與 alpha WebJob api 配合得很好。我剛剛將它更新到測試版,在修復連接字符串和命名空間后,當 JobHost 嘗試連接時,我收到 HTTP 409(沖突)錯誤。

這是調用堆棧:

Microsoft.WindowsAzure.Storage.dll!Microsoft.WindowsAzure.Storage.Table.Protocol.TableOperationHttpResponseParsers.TableOperationPreProcess(Microsoft.WindowsAzure.Storage.Table.TableResult result, Microsoft.WindowsAzure.Storage.Table.TableOperation operation, System.Net.HttpWebResponse resp, System.Exception ex)   Unknown
Microsoft.WindowsAzure.Storage.dll!Microsoft.WindowsAzure.Storage.Table.TableOperation.InsertImpl.AnonymousMethod__2(Microsoft.WindowsAzure.Storage.Core.Executor.RESTCommand<Microsoft.WindowsAzure.Storage.Table.TableResult> cmd, System.Net.HttpWebResponse resp, System.Exception ex, Microsoft.WindowsAzure.Storage.OperationContext ctx) Unknown
Microsoft.WindowsAzure.Storage.dll!Microsoft.WindowsAzure.Storage.Core.Executor.Executor.ExecuteSync<Microsoft.WindowsAzure.Storage.Table.TableResult>(Microsoft.WindowsAzure.Storage.Core.Executor.RESTCommand<Microsoft.WindowsAzure.Storage.Table.TableResult> cmd, Microsoft.WindowsAzure.Storage.RetryPolicies.IRetryPolicy policy, Microsoft.WindowsAzure.Storage.OperationContext operationContext)  Unknown
Microsoft.WindowsAzure.Storage.dll!Microsoft.WindowsAzure.Storage.Table.TableOperation.Execute(Microsoft.WindowsAzure.Storage.Table.CloudTableClient client, Microsoft.WindowsAzure.Storage.Table.CloudTable table, Microsoft.WindowsAzure.Storage.Table.TableRequestOptions requestOptions, Microsoft.WindowsAzure.Storage.OperationContext operationContext)  Unknown
Microsoft.WindowsAzure.Storage.dll!Microsoft.WindowsAzure.Storage.Table.CloudTable.Execute(Microsoft.WindowsAzure.Storage.Table.TableOperation operation, Microsoft.WindowsAzure.Storage.Table.TableRequestOptions requestOptions, Microsoft.WindowsAzure.Storage.OperationContext operationContext)    Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.Host.Storage.SdkCloudStorageAccount.Table.GetOrInsert<Microsoft.Azure.Jobs.Host.Runners.HostEntity>(Microsoft.Azure.Jobs.Host.Runners.HostEntity entity) Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.Host.Runners.HostTable.GetOrCreateHostId(string hostName)    Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.JobHostContext.JobHostContext(string dashboardConnectionString, string storageConnectionString, string serviceBusConnectionString, Microsoft.Azure.Jobs.ITypeLocator typeLocator, Microsoft.Azure.Jobs.INameResolver nameResolver)   Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.JobHost.GetHostContext(Microsoft.Azure.Jobs.ITypeLocator typesLocator, Microsoft.Azure.Jobs.INameResolver nameResolver)  Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.JobHost.JobHost(System.IServiceProvider serviceProvider) Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.JobHost.JobHost(Microsoft.Azure.Jobs.JobHostConfiguration configuration) Unknown
Microsoft.Azure.Jobs.Host.dll!Microsoft.Azure.Jobs.JobHost.JobHost()    Unknown

異常文本:

[Microsoft.WindowsAzure.Storage.StorageException] {“遠程服務器返回錯誤:(409) 沖突。”} Microsoft.WindowsAzure.Storage.StorageException

包.config:

package id="Microsoft.Azure.Jobs" version="0.3.1-beta" targetFramework=.net45" package id="Microsoft.Azure.Jobs.Core" version="0.3.1-beta" targetFramework=.net45" package id="Microsoft.Azure.Jobs.ServiceBus" version="0.3.1-beta" targetFramework=.net45" package id="Microsoft.Bcl" version="1.1.7" targetFramework=.net45" package id=" Microsoft.Bcl.Build" version="1.0.14" targetFramework=.net45" package id="Microsoft.Data.Edm" version="5.6.0" targetFramework=.net45"
package id="Microsoft.Data.OData" version="5.6.0" targetFramework=.net45" package id="Microsoft.Data.Services.Client" version="5.6.0" targetFramework=.net45" package id=" Microsoft.Net.Http" version="2.2.19" targetFramework=.net45"
package id="Microsoft.WindowsAzure.ConfigurationManager" version="2.0.3" targetFramework=.net45" package id="Newtonsoft.Json" version="6.0.4" targetFramework=.net45" package id="System.Spatial" version="5.6.0" targetFramework=.net45" package id="WindowsAzure.MobileServices" version="1.3.0-alpha4" targetFramework=.net45" package id="WindowsAzure.ServiceBus" version="2.4.2.0" targetFramework =.net45" package id="WindowsAzure.Storage" version="4.2.0" targetFramework=.net45"

有任何想法嗎?

將 webjob-publish-settings.json 中的 jobRecurrenceFrequency 更改為“Hour”適用於我的https://error404.atomseo.com項目!

我遇到了同樣的問題,結果發布過程失敗了,因為我將它設置為每 10 分鍾重復一次,而應用程序旨在在免費層中運行。 正如 MS 在此處描述的那樣:

https://azure.microsoft.com/en-us/documentation/articles/websites-dotnet-deploy-webjobs/

可以使用除以分鍾定義的頻率之外的所有頻率進行部署。

我做了一些更多的研究,可以看到如果有創建同名隊列/表的並發請求,就會發生這種情況。 Azure 似乎拒絕那些帶有用於應用程序的自定義 409 http 代碼的請求。

要在最新的 Azure SDK 中重現,只需要一個 webjob 來處理隊列,並且只有在隊列中有很多請求后才啟動 JobHost。 在 Job 函數中獲取 blob 作為 TextWriter 並寫入其中。 確保當 JobHost 開始發現問題時,blob 'logs/webjob1' 不存在。

public static void ProcessQueueMessage([QueueTrigger("testqueue1")] string inputText,
       [Blob("logs/webjob1")]TextWriter writer)
        {
            writer.WriteLine(inputText);
        }

當我啟動 JobHost 時,隊列中只有 4 個項目,並且能夠從 Azure 看到問題。 使用免費托管。

我收到相同的錯誤代碼

2018-08-18T23:06:02.2102822Z ##[error]Conflict 2018-08-18T23:06:02.2119417Z ##[error]Unable to retrieve connection details for Azure App Service : KaktusWatch. Status Code: 409 (Conflict) 2018-08-18T23:06:02.2150200Z ##[section]Finishing: Deploy Azure App Service

就我而言, webjob-publish-settings.json已過時。

我必須填寫intervaljobRecurrenceFrequency設置參數。

在從 Microsoft.WindowsAzure.Storage 拋出一個版本后不久,我們開始收到來自 Azure Web 作業的 409 沖突異常。 在此版本發布前不久,我們實施了舊 blob 的存檔。 事實證明,在我們的存儲(存檔)中具有只讀 blob 是在我們的案例中引發此異常的原因。 並不是很明顯這是罪魁禍首,我懷疑在 webjob 開始命中存檔的 blob 之前需要一些時間。 一旦我們從 blob 存儲中刪除了存檔的消息,webjob 就能夠恢復。

當我收到此錯誤時,我意識到我正在調用的 Jenkins 作業沒有我傳遞給它的參數。 添加參數后,它工作正常。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM