2012-03-07 9 views
6

Hace unos días que aprendía sobre referencias web dentro de mis proyectos. Ahora me he encontrado con un problema extraño.usando referencias web

Usando una aplicación de consola sencilla que hice esto:

namespace Webservices09004961 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 

      { 
       Convert.ConvertTemperatureSoapClient client = 
       new Convert.ConvertTemperatureSoapClient(); 
       while (true) 
       { 
        Console.Write("Enter temperature in Celsius: "); 
        double tempC = double.Parse(Console.ReadLine()); 
        double tempF = client.ConvertTemp(tempC, Convert.TemperatureUnit.degreeCelsius, Convert.TemperatureUnit.degreeFahrenheit); 
        Console.WriteLine("That is " + tempF + " degrees Farenheit"); 
       } 
      } 
     } 
    } 
} 

he añadido en la referencia de servicio "Convertir" en relación con este enlace: http://www.webservicex.net/ConvertTemperature.asmx?WSDL

Sin embargo, me sale este error:

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

Esto es porque solo puede tener una referencia de servicio asignada en cualquiera ¿hora? La razón por la que pregunto es porque mi referencia de servicio local dentro de la misma construcción del proyecto todavía funciona bien. Sin embargo, este no? (Lo hizo cuando lo creé por primera vez)

¿O se trata de un problema aparte?

¿Cuáles son las limitaciones de SOAP?

+2

La respuesta estará en su archivo .config. –

+0

Sí, lo encontré. Gracias de todos modos –

Respuesta

10

Estos errores son comunes cuando intenta eliminar una referencia de svc y agregarla de nuevo. Verifique su aplicación/archivo web.config, debe tener entradas duplicadas para Convert.ConvertTemperatureSoap. eliminar uno de ellos y funcionará bien.

+1

Gracias por el comentario Davita lo encontré :) –

+0

De nada :) – Davita

+1

Lol ¡Esta respuesta me ha salvado dos veces! – Pomster

0
 <endpoint address="http://www.webservicex.net/ConvertTemperature.asmx" 
      binding="basicHttpBinding" bindingConfiguration="ConvertTemperatureSoap" 
      contract="Convert.ConvertTemperatureSoap" name="ConvertTemperatureSoap" /> 
     <!--<endpoint address="http://www.webservicex.net/ConvertTemperature.asmx" 
      binding="customBinding" bindingConfiguration="ConvertTemperatureSoap12" 
      contract="Convert.ConvertTemperatureSoap" name="ConvertTemperatureSoap12" />--> 

Es correcto, encontré que el error estaba relacionado con una entrada doble en mi archivo de configuración. Extraño no estoy seguro de por qué lo hizo.

Works now.