Я пытаюсь создать функцию Azure с триггером служебной шины. Локально он собирается нормально, однако, когда я пытаюсь его запустить, я получаю следующую ошибку:
[2024-11-28T12:47:02.953Z] A host error has occurred during startup operation '2fe67e9d-b8ad-4ee6-9603-18ba874fbe69'.
[2024-11-28T12:47:02.953Z] Microsoft.Azure.WebJobs.Script: Error building configuration in an external startup class. TransactionEventsProcessor: Could not load file or assembly 'Microsoft.Extensions.Configuration.Abstractions, Version=8.0.0.0, Culture=neutral, PublicKeyToken=adb9793829ddae60'. The system cannot find the file specified.
У меня установлены следующие пакеты nuget:
Если я также установлю Microsoft.Extensions.Configuration.Abstractions, я получу то же сообщение об ошибке. Есть предложения по устранению этой ошибки?
Класс Startup.cs:
public class Startup : FunctionsStartup
{
///
public override void Configure(IFunctionsHostBuilder builder)
{
var configuration = builder.GetContext().Configuration;
builder.Services.AddSingleton();
}
///
public override void ConfigureAppConfiguration(IFunctionsConfigurationBuilder builder)
{
#if DEBUG
builder.ConfigurationBuilder
.SetBasePath(Directory.GetCurrentDirectory())
.AddJsonFile("local.settings.json", true);
#else
AzureAppConfig.Extensions.DependencyInjectionExtensions
.AddAzureAppConfig(builder.ConfigurationBuilder)
.AddEnvironmentVariables();
#endif
base.ConfigureAppConfiguration(builder);
}
}
Код функции:
public class IntegrationFunction
{
///
/// The message mapper
///
private IMessageMapper messageMapper;
///
/// Polling integration.
///
/// The message
/// The logger.
/// The message actions
/// The mainframe queued message client
/// The message mapper
[FunctionName("IntegrationFunction")]
[return: ServiceBus("%Transactions:SB:Transactions:ProcessorUpdateQueue%", Connection = "Transactions:SB:Transactions")]
public async Task Run(
[ServiceBusTrigger(
"%Transactions:SB:Transactions:ReceiveTopic%",
"%Transactions:SB:Transactions:TransactionEventsTopicSubscription%",
Connection = "Transactions:SB:Transactions")]
ServiceBusReceivedMessage message,
ILogger logger,
ServiceBusMessageActions messageActions,
IMainframeQueuedMessageClient queuedMessageClient,
IMessageMapper messageMapper,
IConfiguration configuration)
{
try
{
var retailTransaction = JsonConvert.DeserializeObject(message.Body.ToString(), JsonSerialisationUtils.SerialiserSettings);
if (retailTransaction == null)
throw new TransactionDeserialisationException();
if (retailTransaction.PollingEvents == null)
return retailTransaction.GetServiceBusMessage(CompletionResults.Completed);
if (configuration?[Constants.DisableSendToMainframe] == null || configuration[Constants.DisableSendToMainframe].ToLowerInvariant().Equals("false"))
{
logger.LogWarning($"Transaction event messages for '{retailTransaction.TransactionNumber}' will not be sent due to app configuration {Constants.DisableSendToMainframe} being enabled" );
return retailTransaction.GetServiceBusMessage(CompletionResults.Completed);
}
return retailTransaction.GetServiceBusMessage(CompletionResults.Completed);
}
catch (Exception ex)
{
return ((RetailTransaction)null).GetServiceBusMessage(CompletionResults.CompletedWithError, errorMessage: ex.Message);
}
}
}
Подробнее здесь: https://stackoverflow.com/questions/792 ... s-configur
Функции Azure: не удалось загрузить файл или сборку «Microsoft.Extensions.Configuration.Abstractions, версия = 8.0.0.0». ⇐ C#
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение