5

我有一个与 alpha WebJob api 配合得很好的 C# WebJob。我刚刚将它更新到 beta 版本,在修复连接字符串和命名空间后,当 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:

包 id="Microsoft.Azure.Jobs" 版本="0.3.1-beta" targetFramework="net45" 包id="Microsoft.Azure.Jobs.Core" 版本="0.3.1-beta" targetFramework="net45"包 id="Microsoft.Azure.Jobs.ServiceBus" 版本="0.3.1-beta" targetFramework="net45" 包id="Microsoft.Bcl" 版本="1.1.7" targetFramework="net45" 包id=" Microsoft.Bcl.Build" version="1.0.14" targetFramework="net45" 包 id="Microsoft.Data.Edm" 版本="5.6.0" targetFramework="net45"
包 id="Microsoft.Data.OData"版本="5.6.0" targetFramework="net45" 包id="Microsoft.Data.Services.Client"version="5.6.0" targetFramework="net45" 包 id="Microsoft.Net.Http" version="2.2.19" targetFramework="net45"
包 id="Microsoft.WindowsAzure.ConfigurationManager" 版本="2.0.3" targetFramework="net45" 包id="Newtonsoft.Json" 版本="6.0.4" targetFramework="net45" 包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" 包 id="WindowsAzure.Storage" 版本="4.2.0" targetFramework="net45"

有任何想法吗?

4

4 回答 4

4

将 webjob-publish-settings.json 中的 jobRecurrenceFrequency 更改为“Hour”适用于我的https://error404.atomseo.com项目!

我遇到了同样的问题,结果发现发布过程失败了,因为我将它设置为每 10 分钟重复一次,而该应用程序本来是要在免费层中运行的。正如MS在这里描述的:

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

除了以分钟为单位定义的频率外,还可以使用所有频率进行部署。

于 2015-09-24T15:24:46.750 回答
2

我做了一些更多的研究,并且可以看到如果有并发请求创建具有相同名称的队列/表,就会发生这种情况。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 并且能够从 Azure 中看到问题时,我的队列中只有 4 个项目。使用免费托管。

于 2015-07-14T19:19:04.627 回答
1

在 Microsoft.WindowsAzure.Storage 引发发布后不久,我们就开始从 Azure Web Jobs 收到 409 冲突异常。在此版本发布前不久,我们实施了旧 Blob 的归档。事实证明,我们的存储(存档)中有只读 blob 是在我们的案例中引发此异常的原因。不是很明显这是罪魁祸首,我怀疑网络作业开始打击存档的 blob 需要时间。一旦我们从 Blob 存储中删除了归档消息,网络作业就能够恢复。

于 2021-05-15T13:22:31.120 回答
1

我得到了相同的错误代码

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设置参数。

于 2018-09-26T11:15:44.390 回答