.NET Framework 'ਤੇ WCF: HTTP GET ਮੈਟਾਡੇਟਾ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ
HTTP ਆਯਾਤਾਂ ਸਮੇਤ ਪੁਰਾਣੇ WCF ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤੀ ਮਾਰਗ ਨੂੰ ਅੰਤਿਮ SOAP ਸੇਵਾ ਕਲਾਇੰਟ ਤੋਂ ਵੱਖਰੇ ਤੌਰ 'ਤੇ ਸੰਰਚਿਤ ਕਰੋ।
HTTP GET ਮੋਡ ਵਿੱਚ .NET Framework 4.8.1 'ਤੇ WCF ਮੈਟਾਡੇਟਾ ਪ੍ਰਾਪਤੀ ਲਈ, ਸਿਰਫ਼ ਅੰਤਿਮ 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 ਨਾਲ ਬਣਾਓ ਅਤੇ WSDL URL ਲਈ HttpGet ਮੋਡ ਵਰਤੋ। ਪ੍ਰੌਕਸੀ ਖਾਤਾ ਉਸ ਆਬਜੈਕਟ 'ਤੇ ਰੱਖੋ; ਮੈਟਾਡੇਟਾ-ਸਰਵਰ ਪ੍ਰਮਾਣੀਕਰਨ ਵੱਖਰਾ ਹੈ।
ਜੇ ਰੂਟ WSDL ਸਫਲ ਹੁੰਦਾ ਹੈ ਪਰ ਬਾਅਦ ਵਿੱਚ ਹੱਲ ਫੇਲ ਹੁੰਦਾ ਹੈ ਤਾਂ ਆਯਾਤਾਂ ਦੀ ਪਾਲਣਾ ਕਰੋ। ਹੋਰ WSDL ਅਤੇ ਸਕੀਮਾ ਵੱਖਰੇ ਹੋਸਟ ਜਾਂ ਪ੍ਰੋਟੋਕੋਲ ਵਰਤ ਸਕਦੇ ਹਨ।
ਕਿਸੇ ਹੋਰ ਪ੍ਰਾਪਤੀ ਮੋਡ ਲਈ ਸੰਬੰਧਿਤ ਐਕਸਟੈਂਸ਼ਨ ਚੁਣੋ। WS-MetadataExchange ਇੱਕ ਚੈਨਲ ਵਰਤਦਾ ਹੈ, ਜਿਸਦਾ ਨਿਰਮਾਣ ਹੁੱਕ GetChannelFactory ਹੈ; ਇਸਦੀ binding ਅਤੇ ਪ੍ਰੌਕਸੀ ਸੈਟਿੰਗਾਂ HttpWebRequest ਓਵਰਰਾਈਡ ਦੁਆਰਾ ਸਰਵ ਵਿਆਪਕ ਤੌਰ 'ਤੇ ਬਦਲੀਆਂ ਨਹੀਂ ਜਾਂਦੀਆਂ।
ਜਦੋਂ ਸਾਰੇ ਹਿੱਸਾ ਲੈਣ ਵਾਲੇ ਪੁਰਾਣੇ ਕੰਪੋਨੈਂਟਾਂ ਨੂੰ ਇਹ ਸਾਂਝਾ ਕਰਨਾ ਚਾਹੀਦਾ ਹੈ ਤਾਂ ਡਿਫੌਲਟ ਐਪਲੀਕੇਸ਼ਨ ਪ੍ਰੌਕਸੀ ਕਾਫ਼ੀ ਹੋ ਸਕਦੀ ਹੈ। ਸਬਕਲਾਸ ਇਸ API ਪਰਿਵਾਰ ਅੰਦਰ ਸਪੱਸ਼ਟ ਮੈਟਾਡੇਟਾ ਮਾਲਕੀ ਲਈ ਹੈ। ਤਿਆਰ ਕੀਤੀਆਂ SOAP ਕਾਲਾਂ ਨੂੰ ਅਜੇ ਵੀ ਆਪਣੀ ਰਨਟਾਈਮ ਟ੍ਰਾਂਸਪੋਰਟ ਸੰਰਚਨਾ ਚਾਹੀਦੀ ਹੈ। BasicHttpBinding ਕਲਾਇੰਟ ਲਈ, ProxyAddress ਅਤੇ UseDefaultWebProxy ਇਕੱਠੇ ਜਾਂਚੋ।