.NET Framework 4.8.1 üzerinde HTTP GET modunda WCF meta verisi almak için yalnızca nihai SOAP istemcisini değil, önceki meta veri isteğini yapılandırın. Korumalı GetWebRequest kancası ayrı yönetilen bir rota uygulayabilir:

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;
    }
}

Türler System.Net ve System.ServiceModel.Description'dan gelir. Bu istemciyi amaçlanan WebProxy ile oluşturun ve WSDL URL'si için HttpGet modunu kullanın. Proxy hesabını o nesneye koyun; meta veri sunucusu kimlik doğrulaması ayrıdır.

Kök WSDL başarılı olup çözümleme sonradan başarısız olursa içe aktarımları izleyin. Diğer WSDL'ler ve şemalar farklı ana bilgisayarlar veya protokoller kullanabilir.

Başka bir alma modu için karşılık gelen uzantıyı seçin. WS-MetadataExchange, oluşturma kancası GetChannelFactory olan bir kanal kullanır; bağlama ve proxy ayarları bir HttpWebRequest geçersiz kılmasıyla evrensel olarak değiştirilmez.

Katılan tüm eski bileşenlerin onu paylaşması gerektiğinde varsayılan bir uygulama proxy'si yeterli olabilir. Alt sınıf, bu API ailesi içinde açık meta veri sahipliği içindir. Oluşturulan SOAP çağrıları yine de kendi çalışma zamanı aktarım yapılandırmasına ihtiyaç duyar. Bir BasicHttpBinding istemcisi için ProxyAddress ve UseDefaultWebProxy'yi birlikte kontrol edin.

İlgili makaleler