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 разам.