Объекты, добавленные в функции Azure v4 в DotNet 8, пусты или имеют значение NULL.C#

Место общения программистов C#
Ответить
Anonymous
 Объекты, добавленные в функции Azure v4 в DotNet 8, пусты или имеют значение NULL.

Сообщение Anonymous »

Я обновил свой проект функций Azure с dotnet 6 до dotnet 8 и начал использовать изолированный от dotnet вместо dotnet. Я заметил, что все объекты, которые работали при добавлении в сигнатуру функции, больше не работают. Например,

Код: Выделить всё

[FunctionName("FunctionName")]
public static async Task Run([TimerTrigger("45 0 0 * * *")]TimerInfo myTimer, [DurableClient] IDurableOrchestrationClient starter, Binder binder, ILogger log)
{
log.LogInformation($"C# Timer trigger function executed with frequency: {myTimer}");
await csvFileCreater(binder).ConfigureAwait(false);
log.LogInformation($"FunctionName - completed.");
}

private static async Task csvFileCreater(Binder binder)
{
string csvFileName = CommonUtils.GenerateCSVFileName();
var attributes = new Attribute[]
{
new BlobAttribute($"containerName/{csvFileName}"),
new StorageAccountAttribute("AzureWebsJobsStorage")
};
using (var writer = await binder.BindAsync(attributes))
{
writer.Write($"ColumnName ");
}
return csvFileName;
}
В приведенном выше примере кода объекты Binder и ILogger не являются нулевыми и успешно использовались в моем проекте.
Однако после обновления до dotnet 8 оба объекта стали пустыми. Я нашел обходной путь для ведения журнала и включил его в своем проекте, добавив ведение журнала в файл program.cs:

Код: Выделить всё

var host = new HostBuilder()
.ConfigureFunctionsWebApplication()
.ConfigureServices((appBuilder, services) =>
{
var config = appBuilder.Configuration;
services.AddApplicationInsightsTelemetryWorkerService();
services.ConfigureFunctionsApplicationInsights();
services.AddSingleton();
services.AddHttpClient();
})
.ConfigureLogging(logging =>
{
logging.Services.Configure(options =>
{
LoggerFilterRule defaultRule = options.Rules.FirstOrDefault(rule => rule.ProviderName
== "Microsoft.Extensions.Logging.ApplicationInsights.ApplicationInsightsLoggerProvider");
if (defaultRule is not null)
{
options.Rules.Remove(defaultRule);
}
});
})
.Build();

host.Run();
Как добавить Binder или любой другой объект в мою функцию, чтобы объект не был нулевым?

Подробнее здесь: https://stackoverflow.com/questions/784 ... ty-or-null
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»