Proxy sunucu üzerinden web servis tüketmek

Proxy sunucu üzerinden bizim sistemimiz dışındaki bir web servisi tüketmek istediğimizde;

  • “Add Web Reference” seçeneğini kullandıysak eğer, bizim için ilk etapta anlamlı olmayan aşağıdaki hatayı almamız olasıdır.

Operation is not valid due to the current state of the object.

Failure2

  • “Add Service Reference” seçeneğinde bizim için çok daha anlamlı olan bir hata ile karşılaşırız.

Metadata contains a reference that cannot be resolved:
http://www.remotesite.com/stokws/tasinirmalservis.asmx?WSDL’.
The remote server returned an unexpected response: (407) authenticationrequired.
The remote server returned an error: (407) Proxy Authentication Required.

Failure1

Hata açıklamasında gayet net bir şekilde belirtilen; proxy sunucusu kimlik doğrulaması istemektedir. Domain kullanıcı bilgisi ile bu hatadan kurtulabiliriz.Fakat kimlik bilgilerini nereye, nasıl gireceğiz?

Öncelikle web servisin WSDL’ini bir text dosyasına kayıt ettikten sonra bu dosyayı kullanarak servisi projemize eklememiz gerekiyor. Daha sonra web servisimizi tüketme noktasında araya girerek proxy sunucusu için kimlik bilgilerimizi vermeliyiz.

//Sunucu IP, adres ve port bilgisini veriyoruz.
System.Net.WebProxy pry = new System.Net.WebProxy("MyHost", 8080);

//The DefaultCredentials otomatik olarak kullaniciAdi ve sifreyi alir.
pry.Credentials = System.Net.CredentialCache.DefaultCredentials;
System.Net.WebRequest.DefaultWebProxy = pry;
Advertisements

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s