-
Notifications
You must be signed in to change notification settings - Fork 34
Description
Hi.
I have slight problem. Dont know if it a configuration issue on my side or something else.
Currently migrating our software from ..NET6 -> .NET8 and from InProc to Isolated. All good works as intended. The Null Reference Exception shows its self when I switch from AzureStorage to SQL Server.
A bit of code to exemplify the issue.
[Function(nameof(ProcessData))]
public async Task RunOrchestrator(
[OrchestrationTrigger] TaskOrchestrationContext context)
{
ILogger logger = context.CreateReplaySafeLogger(nameof(ProcessData));
var input = context.GetInput<string>();
var result = await context.CallActivityAsync<RegionMix>("ActProcessData", input);
var countryKey = string.IsNullOrEmpty(result.CountryCode) ? result.Country : result.CountryCode;
await context.Entities.SignalEntityAsync(new EntityInstanceId(nameof(Entities.EnergyMix), countryKey), "Add", result);
}var result is a POCO.
Running this code, I get the NullReferenceException on SignalEntify.
My config is:
Microsoft.Azure.Functions.Worker - 1.20.1
Microsoft.Azure.Functions.Worker.Extensions.DurableTask - 1.1.0
Microsoft.Azure.Functions.Worker.Extensions.DurableTask.SqlServer - 1.2.2
Microsoft.Azure.Functions.Worker.Sdk - 1.16.4
host.json :)
{
"version": "2.0",
"extensions": {
"http": {
"routePrefix": ""
},
"durableTask": {
"hubName": "%TaskHubConfig%",
"storageProvider": {
"type": "mssql",
"connectionStringName": "Durable_SQLDB_Connection",
"createDatabaseIfNotExists": true
}
}
},
"logging": {
"applicationInsights": {
"samplingSettings": {
"isEnabled": true,
"excludedTypes": "Request"
},
"enableLiveMetricsFilters": true
},
"logLevel": {
"default": "Information",
"DurableTask.SqlServer": "Debug",
"DurableTask.Core": "Debug"
}
}
}After a bit of debugging.
The exception originates OrchestrationEntityContext class on DurableTask.Core
internal void AdjustOutgoingMessage(string instanceId, RequestMessage requestMessage, DateTime? cappedTime, out string eventName)
{
if (cappedTime.HasValue)
{
eventName = EntityMessageEventNames.ScheduledRequestMessageEventName(cappedTime.Value);
}
else
{
this.messageSorter.LabelOutgoingMessage(
requestMessage,
instanceId,
this.innerContext.CurrentUtcDateTime,
this.innerContext.EntityParameters.EntityMessageReorderWindow);
eventName = EntityMessageEventNames.RequestMessageEventName;
}
}The this.innerContext.EntityParameters is not populated and is NULL.
Is this intentionally? If yes, how do I fix it...
//Daniel