gpt4 book ai didi

azure - 为 Webhooks 注入(inject) Azure 表存储连接字符串

转载 作者:行者123 更新时间:2023-12-03 03:06:20 26 4
gpt4 key购买 nike

我正在将 Azure 表存储用于我们的一项 Webhook 发送器服务。

为此,必须在 web.config 文件中设置 MS_AzureStoreConnectionString。

现在我需要从 key 保管库获取上述值,这只能通过自定义实现来完成。

我删除了 web.config 中的“MS_AzureStoreConnectionString”键。

我尝试将 azure 表存储连接字符串注入(inject)到默认的 Web Hook 实现,如下所示在我的启动类中。

SettingsDictionary settings = new SettingsDictionary();

string connectionString = helper.getTableSrorageConnectionString();

ConnectionSettings connection = new ConnectionSettings("MS_AzureStoreConnectionString", connectionString);

settings.Connections.Add("MS_AzureStoreConnectionString", connection);

但是我在运行我的应用程序时遇到以下问题。

Please provide a Microsoft Azure Storage connection string with name 'MS_AzureStoreConnectionString' in the configuration string section of the 'Web.Config' file.

我不想在 web.config/应用程序设置中保留连接字符串。

如何将连接字符串注入(inject)到默认的 Web Hook 实现?

请提出可能的解决方案。

最佳答案

根据你的描述,如果你想在代码中设置连接字符串。我建议您可以在 WebApiConfig 类中创建自己的 InitializeCustomWebHooksAzureStorage 方法。

在InitializeCustomWebHooksAzureStorage获取SettingsDictionary后,您可以将连接字符串添加到SettingsDictionary中。

更多详细信息,您可以引用以下代码:

  public static class WebApiConfig
{
public static void Register(HttpConfiguration config)
{
// Web API configuration and services

// Web API routes
config.MapHttpAttributeRoutes();

config.Routes.MapHttpRoute(
name: "DefaultApi",
routeTemplate: "api/{controller}/{id}",
defaults: new { id = RouteParameter.Optional }
);
config.InitializeCustomWebHooks();
// Change the method
config.InitializeCustomWebHooksAzureStorage2();
config.InitializeCustomWebHooksApis();
config.InitializeReceiveCustomWebHooks();
}

public static void InitializeCustomWebHooksAzureStorage2(this HttpConfiguration config)
{
if (config == null)
{
throw new ArgumentNullException(nameof(config));
}
WebHooksConfig.Initialize(config);
ILogger logger = config.DependencyResolver.GetLogger();
SettingsDictionary settings = config.DependencyResolver.GetSettings();
settings.Add("MS_AzureStoreConnectionString", "connection string");
IStorageManager storageManager = GetInstance2(logger);
IWebHookStore store;
store = new AzureWebHookStore(storageManager, settings, logger);
CustomServices.SetStore(store);
}


private static IStorageManager _storageManager;

internal static IStorageManager GetInstance2(ILogger logger)
{
if (_storageManager != null)
{
return _storageManager;
}

IStorageManager instance = new StorageManager(logger);
Interlocked.CompareExchange(ref _storageManager, instance, null);
return _storageManager;
}


}

关于azure - 为 Webhooks 注入(inject) Azure 表存储连接字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44180175/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com