WCF w .NET Framework: ustawienia serwera proxy dla metadanych HTTP GET
Skonfiguruj starszą ścieżkę pobierania metadanych WCF, w tym importy HTTP, oddzielnie od końcowego klienta usługi SOAP.
Aby pobierać metadane WCF w trybie HTTP GET w .NET Framework 4.8.1, skonfiguruj wcześniejsze żądanie metadanych, a nie tylko końcowego klienta SOAP. Jego chroniony hak GetWebRequest może zastosować osobno zarządzaną trasę:
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;
}
}Typy pochodzą z System.Net i System.ServiceModel.Description. Zbuduj tego klienta z zamierzonym obiektem WebProxy i użyj trybu HttpGet dla adresu URL WSDL. Umieść konto serwera proxy na tym obiekcie; uwierzytelnianie serwera metadanych jest osobne.
Śledź importy, jeśli główny WSDL powiedzie się, ale rozwiązywanie później się nie uda. Inne pliki WSDL i schematy mogą używać innych hostów lub protokołów.
Wybierz odpowiednie rozszerzenie dla innego trybu pobierania. WS-MetadataExchange używa kanału, którego hakiem tworzenia jest GetChannelFactory; jego ustawienia powiązania i serwera proxy nie są powszechnie zastępowane przez zastąpienie HttpWebRequest.
Domyślny serwer proxy aplikacji może wystarczyć, gdy wszystkie uczestniczące starsze składniki powinny go współdzielić. Podklasa służy do jawnego posiadania metadanych w tej rodzinie API. Wygenerowane wywołania SOAP nadal wymagają własnej konfiguracji transportu w czasie wykonywania. W przypadku klienta BasicHttpBinding sprawdź ProxyAddress i UseDefaultWebProxy razem.