Google Analytics İzleme

01 Kasım 2013

WCF, Web Servis - ..more than one endpoint configuration... hatası

Bir .asmx web servisine Service Reference yöntemiyle eklediğimizde app.config veya web.config dosyasına o web servisi için 2 tane endpoint tanımı eklenmektedir.
Uygulamayı çalıştırıp, web servisini çağırdığımızda aşağıdaki gibi hata alınmaktadır:

An endpoint configuration section for contract '...' could not be loaded because more than one endpoint configuration for that contract was found. Please indicate the preferred endpoint configuration section by name.

Uygulama, Web servisine bağlanınca hangi enpoint tanımı ile bağlanacağını tespit edemediğinden bu hata oluşmaktadır.

Örnek kod:

private void button1_Click(object sender, EventArgs e)
        {          

            ServiceReference2.ConvertTemperatureSoapClient service2 = new ConvertTemperatureSoapClient();
            double result2 = service2.ConvertTemp(60.5, TemperatureUnit.degreeCelsius, TemperatureUnit.degreeFahrenheit);

        }

App.config bilgileri:

<system.serviceModel>
        <bindings>
            <basicHttpBinding> 
                <binding name="ConvertTemperatureSoap" />
            </basicHttpBinding>
            <customBinding>               
                <binding name="ConvertTemperatureSoap12">
                    <textMessageEncoding messageVersion="Soap12" />
                    <httpTransport />
                </binding>
            </customBinding>
        </bindings>
        <client>
           
            <endpoint address="http://www.webservicex.net/ConvertTemperature.asmx"
                binding="basicHttpBinding" bindingConfiguration="ConvertTemperatureSoap"
                contract="ServiceReference2.ConvertTemperatureSoap" name="ConvertTemperatureSoap" />
            <endpoint address="http://www.webservicex.net/ConvertTemperature.asmx"
                binding="customBinding" bindingConfiguration="ConvertTemperatureSoap12"
                contract="ServiceReference2.ConvertTemperatureSoap" name="ConvertTemperatureSoap12" />
        </client>
    </system.serviceModel>


Çözüm:
App.config dosyasında Sarı renkle işaretlediğimiz endpoint tanımını pasif veya sildiğimizde sorun düzelmektedir. Veya Kod ile bağlanırken hangi konfigurasyon bilgisi ile bağlanılacağını belirtmek gerekmektedir.


Kaynaklar: