Как настроить прокси при подключении к AzureNotificationHub из основной службы .Net - PullRequest
0 голосов
/ 16 октября 2018

Мне интересно, кто-то имел дело с этим сценарием раньше.У нас есть .NET core 2.1 API, который должен подключаться к AzureNotificationHub для отправки некоторых push-уведомлений.

Мы используем библиотеку NotificationHubClient от Microsoft (nuget "Microsoft Azure Notification Hubs", версия 2.0.1).Он отлично работает во всех средах, кроме производственных, где нам нужно настроить прокси.Эта библиотека, кажется, не предоставляет способ явно установить прокси.

Чтобы сделать это более интересным, в ядре .NET, очевидно, установка веб-прокси по умолчанию, используемого для всех исходящих запросов, также не работает.

        WebRequest.DefaultWebProxy = new WebProxy(configuration.GetValue<string>("WebServices:Proxy"));
        WebRequest.DefaultWebProxy.Credentials = CredentialCache.DefaultNetworkCredentials;

Есть способы внедрить прокси внутриконвейер Kestrel через решение типа «промежуточное программное обеспечение», но все они, похоже, предполагают, что связь будет осуществляться HttpClient.Что происходит, когда нам нужно использовать закрытую библиотеку?

Любая помощь очень ценится

1 Ответ

0 голосов
/ 11 апреля 2019

В версии 3.0.0 файла microsoft.azure.notification.hubs класс NotificationHubClient имеет конструктор, который получает объект типа NotificationHubClientSettings, вы можете использовать этот объект для настройки HttpMessageHandler или прокси, который будет передан HttpClient, которыйобъект NotificationHubClient создает.

Это пример кода для настройки прокси:

NotificationHubClientSettings settings = new NotificationHubClientSettings();
settings.Proxy = new WebProxy("1.1.1.1",8080)
NotificationHubClient client = new NotificationHubClient("hubconnectionstring", "hubnotificationpath", settings);    

Надеюсь, это поможет, если вы хотите посмотреть другие варианты, которые вы можете использовать, я предлагаю посмотреть на исходный кодна github (https://github.com/Azure/azure-notificationhubs-dotnet/blob/master/src/Microsoft.Azure.NotificationHubs/NotificationHubClient.cs).

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...