A WCF-metaadatok HTTP GET módú lekéréséhez a .NET Framework 4.8.1-en a korábbi metaadat-kérést állítsa be, ne csak a végső SOAP-ügyfelet. Védett GetWebRequest horga külön kezelt útvonalat alkalmazhat:

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

A típusok a System.Net és a System.ServiceModel.Description névtérből származnak. Hozza létre ezt az ügyfelet a kívánt WebProxyval, és használja a HttpGet módot a WSDL URL-hez. Helyezze a proxyfiókot arra az objektumra; a metaadat-kiszolgáló hitelesítése külön történik.

Kövesse az importokat, ha a gyökér-WSDL sikeres, de a feloldás később meghiúsul. Más WSDL-ek és sémák eltérő gazdagépeket vagy protokollokat használhatnak.

Válassza a megfelelő bővítményt egy másik lekérési módhoz. A WS-MetadataExchange csatornát használ, amelynek létrehozási horga GetChannelFactory; kötési és proxybeállításait nem váltja fel általánosan a HttpWebRequest felülírása.

Egy alapértelmezett alkalmazásproxy elegendő lehet, ha minden részt vevő régi összetevőnek meg kell osztania. Az alosztály az ezen API-családon belüli kifejezett metaadat-tulajdonlást szolgálja. A generált SOAP-hívásoknak továbbra is saját futásidejű átviteli konfigurációra van szükségük. BasicHttpBinding-ügyfél esetén ellenőrizze a ProxyAddress és UseDefaultWebProxy együttes használatát.

Kapcsolódó cikkek