Web Service – Endpoint Hatası ve Çözümü

Web Service – Endpoint Hatası ve Çözümü

8 Eylül 2019 0 Yazar: Mustafa BÜKÜLMEZ
Toplam Görüntülenme : 31
Yaklaşık okuma süresi : 4 DK
C# 'Internet or Restricted zone or having the mark of the web on the file' Hatası ve Çözümü
C# XML ile TreeView Nasıl Doldurulur?

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

Advertisements

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ı-ve-Çözümü

 

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.

İlgili İçerik  C# Bilgisayarın Kaç Saattir Açık Olduğunu Bulmak

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. 😉

C# 'Internet or Restricted zone or having the mark of the web on the file' Hatası ve Çözümü
C# XML ile TreeView Nasıl Doldurulur?