WCF у .NET Framework: налаштування проксі для метаданих HTTP GET
Налаштуйте застарілий шлях отримання метаданих WCF, зокрема імпорти HTTP, окремо від підсумкового клієнта служби SOAP.
Для отримання метаданих WCF у режимі HTTP GET у .NET Framework 4.8.1 налаштуйте попередній запит метаданих, а не лише підсумковий клієнт SOAP. Його захищений хук GetWebRequest може застосувати окремо керований маршрут:
class RoutedMetadataClient : MetadataExchangeClient
{
private readonly IWebProxy route;
public RoutedMetadataClient(IWebProxy route)
{
this.route = route;
}
protected override HttpWebRequest GetWebRequest(
Uri location, string dialect, string identifier)
{
HttpWebRequest request =
base.GetWebRequest(location, dialect, identifier);
request.Proxy = route;
return request;
}
}Типи походять із System.Net і System.ServiceModel.Description. Створіть цей клієнт із потрібним WebProxy і використовуйте режим HttpGet для URL-адреси WSDL. Розмістіть обліковий запис проксі на цьому об'єкті; автентифікація сервера метаданих є окремою.
Дотримуйтеся імпортів, якщо кореневий WSDL успішний, але розв'язання пізніше не вдається. Інші WSDL і схеми можуть використовувати інші хости або протоколи.
Виберіть відповідне розширення для іншого режиму отримання. WS-MetadataExchange використовує канал, хук створення якого — GetChannelFactory; його налаштування прив'язки та проксі не замінюються повсюдно перевизначенням HttpWebRequest.
Проксі програми за замовчуванням може бути достатнім, коли всі задіяні застарілі компоненти мають його спільно використовувати. Підклас призначений для явного володіння метаданими в цьому сімействі API. Згенеровані виклики SOAP усе ще потребують власної конфігурації транспорту часу виконання. Для клієнта BasicHttpBinding перевірте ProxyAddress і UseDefaultWebProxy разом.