Web Service – Endpoint Hatası ve Çözümü, dersim ile C# eğitim setime devam ediyorum. Bu dersimizde C# Web servis ile ilgili çalışmalarımda karşılaştığım bir hata olan Endpoint hatasının çözümünü içerir.
Web Service – Endpoint Hatası
Bir web service ile çalışmaya başladığnızda bu hatayı alma olasılığınız çok yüksektir. Bu sebeple bu hatanın çözümünü paylaşmak istedim. Bu hatanın tam şekli şöyledir.
“An unhandled exception of type ‘System.InvalidOperationException’ occurred in System.ServiceModel.dll
Additional information: İlgili sözleşme için birden fazla bitiş noktası yapılandırması bulunduğundan ‘…’ sözleşmesi bitiş noktası yapılandırma bölümü yüklenemedi. Tercih edilen bitiş noktası yapılandırması bölümünü adıyla belirtin.”
Hatanın görseli de aşağıdaki gibidir.
Web Service – Endpoint Hatası Çözümü
Hatanın kaynağı App.Config dosyası ile ilgilidir. App.Config dosyasını açtığınızda aşağıdaki gibi görünecektir.
<?xml version="1.0" encoding="utf-8" ?> <configuration> <startup> <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" /> </startup> <system.serviceModel> <bindings> <basicHttpBinding> <binding name="GlobalWeatherSoap" /> </basicHttpBinding> <customBinding> <binding name="GlobalWeatherSoap12"> <textMessageEncoding messageVersion="Soap12" /> <httpTransport /> </binding> </customBinding> </bindings> <client> <endpoint address="http://www.webservicex.net/globalweather.asmx" binding="basicHttpBinding" bindingConfiguration="GlobalWeatherSoap" contract="ServiceReference1.GlobalWeatherSoap" name="GlobalWeatherSoap" /> <endpoint address="http://www.webservicex.net/globalweather.asmx" binding="customBinding" bindingConfiguration="GlobalWeatherSoap12" contract="ServiceReference1.GlobalWeatherSoap" name="GlobalWeatherSoap12" /> </client> </system.serviceModel> </configuration>
Projenize göre bu App.Config dosyasının içi dolacaktır. Yukarıda basit bir App.Config dosyası görüyorsunuz. Dersimize konu olan hatanın sebebi yukarıda gördüğünüz <client> </client> nodesi içinde yer alan <endpoint/> nodesi ile ilgilidir. Yukarıda gördüğünüz App.Config dosyasında endpoint nodesi aynı web servis için iki kere tanımlanmış. Bazen bu şekilde iki kere ekleniyor. Bazende bir tekrar tekrar ekliyoruz. Örneğin bende iki kere eklemeden dolayı çıkmıştı. Web Service’i varsayılan isim ile eklemiştim ama sonra değiştirmek istediğim ve terkar ekledim. Aynı web Service’e atıfta bulunan iki farklı endpoint nodesi olduğundan dolayı hangisi kullanacağını bilemiyor ve hatayı veriyor.
Bu satırlardan birisini sildiğinizde hata çözülmüş olacaktır.
... ... ... <client> <endpoint address="http://www.webservicex.net/globalweather.asmx" binding="basicHttpBinding" bindingConfiguration="GlobalWeatherSoap" contract="ServiceReference1.GlobalWeatherSoap" name="GlobalWeatherSoap" /> </client> ... ... ...
Yukarıda gördüğünüz gibi aynı web service ‘e bağlı olan satırı siliyoruz. Projenizi derlediğinizde yukarıdaki hatayı vermediğini göreceksiniz.
Web Service – Endpoint Hatası ve Çözümü dersimiz de bu kadardı arkadaşlar. Diğer derslerimizde görüşmek üzere…
C Sharp Eğitim Seti eğitimi sayfasına gitmek için tıklayınız.
Derslerime özel olarak hazırladığım Github Projeme buradan ulaşabilirsiniz…
Takipte ve Sağlıcakla kalın.