Local.settings.json не читается в функции Azure ⇐ C#
Local.settings.json не читается в функции Azure
Я создал функцию Azure, настроил dbcontext в файле программы и добавил соединение Строки как значения в файле local.settings.json.
, как показано на изображении, когда Environment.getEnvironmentVariable ("taskDbConnection") Возвращает значение null . < /p>
Я ожидаю, что значение вернуться - это значение в файле local.settings.json. < /p>
Вот программа.cs < /p>
var builder = Host.CreateDefaultBuilder(args)
.ConfigureFunctionsWebApplication((host, webApp) =>
{
StartupHelper.FunctionsWorkerDefaults(webApp
, host
, "Sentry DSN");
webApp.UseMiddleware();
});
//builder.ConfigureFunctionsWebApplication();
// Application Insights isn't enabled by default. See https://aka.ms/AAt8mw4.
// builder.Services
// .AddApplicationInsightsTelemetryWorkerService()
// .ConfigureFunctionsApplicationInsights();
builder.ConfigureServices(services =>
{
// 1. Setup EF Core with Audit.Net
var tdbcs = Environment.GetEnvironmentVariable("TaskDbConnection");
services.AddDbContext(options => {
options.UseSqlServer(tdbcs);
#if DEBUG
options.EnableSensitiveDataLogging();
#endif
});
var idbcs = Environment.GetEnvironmentVariable("InsightsConnection");
services.AddDbContextFactory(options =>
{
options.UseSqlServer(idbcs);
#if DEBUG
options.EnableSensitiveDataLogging();
#endif
});
// 2. Add MediatR (scan the application layer for commands, queries, and event handlers)
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(CreateTaskCommandHandler).Assembly)); // Point to the assembly where MediatR handlers are located
services.AddScoped();
services.AddScoped();
services.AddScoped();
services.AddScoped();
// 3. Configure Audit.Net
Audit.EntityFramework.Configuration.Setup()
.ForContext(config => config
.IncludeEntityObjects()
.AuditEventType("{context}:{database}"))
.UseOptOut()
.IgnoreAny(t => t.Name.EndsWith("Audit"));
Audit.Core.Configuration.Setup()
.UseEntityFramework(ef => ef
.AuditTypeExplicitMapper(m =>
{
// Example: Add types that should be audited
m.Map(); // Audit user entity
m.Map(); // Audit user entity
m.Map(); // Audit user entity
m.AuditEntityAction((evt, entry, auditEntity) =>
{
// Customize the audit event with additional information
auditEntity.AuditAction = entry.Action;
auditEntity.AuditDate = DateTimeOffset.Now;
auditEntity.AuditEventDocument = evt.ToJson();
//auditEntity.CorrelationId = evt.CustomFields["CorrelationId"].ToString().ToGuid();// as Guid;
auditEntity.AuditorUserId = evt.CustomFields["AuditorUserId"]?.ToString();
auditEntity.CorrelationId = evt.CustomFields["CorrelationId"]?.ToString();
});
}));
// Configure Audit.Net
Audit.Core.Configuration.AddCustomAction(ActionType.OnEventSaving, scope =>
{
// Set the custom fields in the audit event
scope.SetCustomField("AuditorUserId", AuditContext.UserId ?? "Anonymous");
scope.SetCustomField("CorrelationId", AuditContext.CorrelationId ?? "No Correlation Id");
if (scope.Event.Environment.Exception != null)
{
scope.SetCustomField("ExceptionMessage", scope.Event.Environment.Exception);
}
scope.Comment("Saved at " + DateTimeOffset.Now);
});
// 4. Register any additional services here
// Example: Logging
services.AddLogging(loggingBuilder =>
{
var cs = Environment.GetEnvironmentVariable("InsightsConnection");
loggingBuilder.AddConsole(); // Logs to the console
StartupHelper.SetupSerilog(loggingBuilder
, "task_insights"
,connectionString:cs );
});
});
builder.Build().Run();
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-function
Я создал функцию Azure, настроил dbcontext в файле программы и добавил соединение Строки как значения в файле local.settings.json.
, как показано на изображении, когда Environment.getEnvironmentVariable ("taskDbConnection") Возвращает значение null . < /p>
Я ожидаю, что значение вернуться - это значение в файле local.settings.json. < /p>
Вот программа.cs < /p>
var builder = Host.CreateDefaultBuilder(args)
.ConfigureFunctionsWebApplication((host, webApp) =>
{
StartupHelper.FunctionsWorkerDefaults(webApp
, host
, "Sentry DSN");
webApp.UseMiddleware();
});
//builder.ConfigureFunctionsWebApplication();
// Application Insights isn't enabled by default. See https://aka.ms/AAt8mw4.
// builder.Services
// .AddApplicationInsightsTelemetryWorkerService()
// .ConfigureFunctionsApplicationInsights();
builder.ConfigureServices(services =>
{
// 1. Setup EF Core with Audit.Net
var tdbcs = Environment.GetEnvironmentVariable("TaskDbConnection");
services.AddDbContext(options => {
options.UseSqlServer(tdbcs);
#if DEBUG
options.EnableSensitiveDataLogging();
#endif
});
var idbcs = Environment.GetEnvironmentVariable("InsightsConnection");
services.AddDbContextFactory(options =>
{
options.UseSqlServer(idbcs);
#if DEBUG
options.EnableSensitiveDataLogging();
#endif
});
// 2. Add MediatR (scan the application layer for commands, queries, and event handlers)
services.AddMediatR(cfg => cfg.RegisterServicesFromAssembly(typeof(CreateTaskCommandHandler).Assembly)); // Point to the assembly where MediatR handlers are located
services.AddScoped();
services.AddScoped();
services.AddScoped();
services.AddScoped();
// 3. Configure Audit.Net
Audit.EntityFramework.Configuration.Setup()
.ForContext(config => config
.IncludeEntityObjects()
.AuditEventType("{context}:{database}"))
.UseOptOut()
.IgnoreAny(t => t.Name.EndsWith("Audit"));
Audit.Core.Configuration.Setup()
.UseEntityFramework(ef => ef
.AuditTypeExplicitMapper(m =>
{
// Example: Add types that should be audited
m.Map(); // Audit user entity
m.Map(); // Audit user entity
m.Map(); // Audit user entity
m.AuditEntityAction((evt, entry, auditEntity) =>
{
// Customize the audit event with additional information
auditEntity.AuditAction = entry.Action;
auditEntity.AuditDate = DateTimeOffset.Now;
auditEntity.AuditEventDocument = evt.ToJson();
//auditEntity.CorrelationId = evt.CustomFields["CorrelationId"].ToString().ToGuid();// as Guid;
auditEntity.AuditorUserId = evt.CustomFields["AuditorUserId"]?.ToString();
auditEntity.CorrelationId = evt.CustomFields["CorrelationId"]?.ToString();
});
}));
// Configure Audit.Net
Audit.Core.Configuration.AddCustomAction(ActionType.OnEventSaving, scope =>
{
// Set the custom fields in the audit event
scope.SetCustomField("AuditorUserId", AuditContext.UserId ?? "Anonymous");
scope.SetCustomField("CorrelationId", AuditContext.CorrelationId ?? "No Correlation Id");
if (scope.Event.Environment.Exception != null)
{
scope.SetCustomField("ExceptionMessage", scope.Event.Environment.Exception);
}
scope.Comment("Saved at " + DateTimeOffset.Now);
});
// 4. Register any additional services here
// Example: Logging
services.AddLogging(loggingBuilder =>
{
var cs = Environment.GetEnvironmentVariable("InsightsConnection");
loggingBuilder.AddConsole(); // Logs to the console
StartupHelper.SetupSerilog(loggingBuilder
, "task_insights"
,connectionString:cs );
});
});
builder.Build().Run();
Подробнее здесь: https://stackoverflow.com/questions/793 ... e-function
-
- Похожие темы
- Ответы
- Просмотры
- Последнее сообщение
-
-
Управление конфигурацией функций Azure без appsettings.json/local.settings.json
Anonymous » » в форуме C# - 0 Ответы
- 28 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Управление конфигурацией функций Azure без appsettings.json/local.settings.json
Anonymous » » в форуме C# - 0 Ответы
- 18 Просмотры
-
Последнее сообщение Anonymous
-
-
-
Управление конфигурацией функций Azure без appsettings.json/local.settings.json
Anonymous » » в форуме C# - 0 Ответы
- 34 Просмотры
-
Последнее сообщение Anonymous
-