Azure functions 函数应用-由于对象的当前状态,操作无效
我使用的是Azure函数-服务总线队列触发器C#。我可以在本地很好地运行这个函数。我能够在Azure中部署此功能应用程序: 在运行该功能时: 我看到以下错误: 如何解决此错误 代码如下:Azure functions 函数应用-由于对象的当前状态,操作无效,azure-functions,azure-function-app,Azure Functions,Azure Function App,我使用的是Azure函数-服务总线队列触发器C#。我可以在本地很好地运行这个函数。我能够在Azure中部署此功能应用程序: 在运行该功能时: 我看到以下错误: 如何解决此错误 代码如下: [FunctionName("XFunction")] public async Task Run([ServiceBusTrigger("xxx", Connection = "queueConnectionString")] Message
[FunctionName("XFunction")]
public async Task Run([ServiceBusTrigger("xxx", Connection = "queueConnectionString")] Message message, MessageReceiver messagereceiver, ILogger logger)
{
var bodyJson = Encoding.UTF8.GetString(message.Body);
var myMessage = JsonConvert.DeserializeObject<IdentifiedSubmissionMessage>(bodyJson);
try
{
await _application.ProcessNewSubmission(myMessage.NewSubmissionMessage, myMessage.PackageInformation);
await messagereceiver.CompleteAsync(message.SystemProperties.LockToken);
}
catch (Exception ex)
{
}
}
更新:
如下所示更新host.json后,我仍然遇到相同的异常:
{
"version": "2.0",
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": false,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
}
}
}
}
在function.json中为这些参数添加
绑定绑定。尝试将参数名称从messagereceiver
更改为messagereceiver
,并更新function.json中相应的绑定
MessageReceiver
用于接收和确认来自消息容器的消息。当autoComplete
设置为false时,需要该选项。请验证host.json
中的autoComplete
是否设置为false:
{
"version": "2.0",
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
}
}
}
}
你能分享一些更多的信息吗,比如:语言、框架和绑定设置?特别是绑定会很有趣-这是ServiceBustigger吗?您能显示错误的详细信息吗?似乎你正在使用持久功能,你能展示代码,以便我们可以做一个测试。请查看更新的问题。非常感谢。非常感谢。我应该在messageHandlerOptions和sessionHandlerOptions中将autoComplete设置为false吗?该错误会同时反映message和messageReceiver。消息可能有什么问题?我尝试使用您共享的host.json,但仍然看到相同的错误。能否在所有位置将autoComplete更改为false?即使在所有位置将authocomplete设置为false,我仍然看到相同的问题。
{
"version": "2.0",
"extensions": {
"serviceBus": {
"prefetchCount": 100,
"messageHandlerOptions": {
"autoComplete": true,
"maxConcurrentCalls": 32,
"maxAutoRenewDuration": "00:05:00"
},
"sessionHandlerOptions": {
"autoComplete": false,
"messageWaitTimeout": "00:00:30",
"maxAutoRenewDuration": "00:55:00",
"maxConcurrentSessions": 16
}
}
}
}