none
Error al agregar referencia de servicio WCF RRS feed

  • Pregunta

  • Estoy peleándome con WCF y he hecho un primer servicio de prueba. En local me funciona bien, pero al subirlo a la web me ocurre que al agregar la referencia de servicio me da un error :

    Error al descargar 'http://www.catinformacion.es/wcf/WcfServiceLibrary1.Service1.svc'.
    Error de la solicitud con el mensaje de error:
    --
    <html>
        <head>
            <title>No se encontró el tipo 'WcfServiceLibrary1.Service1', proporcionado como el valor del atributo Service en la directiva ServiceHost.</title>

    ...

    Los metadatos contienen una referencia que no se puede resolver: 'http://www.catinformacion.es/wcf/WcfServiceLibrary1.Service1.svc'.

    ¿Alguna pista de porque ocurre esto?

    Estoy empezando con esto y agradeceré cualquier ayudita.


    Saludos, Javier J

    jueves, 19 de septiembre de 2013 16:52

Todas las respuestas

  • Creo que estoy con el mismo problema tú. El escenario es diferente pero el problema de base creo que coincide.

    Puse este post a ver si alguien puede echar una mano:

    http://social.msdn.microsoft.com/Forums/es-ES/d41315b0-8e41-4652-b7b5-d7abeb085859/error-al-intentar-usar-servicio-desde-el-cliente

    Esto del WCF me trae de cráneo. Si averiguo algo te digo.

    viernes, 20 de septiembre de 2013 7:30
  • Hola, puedes indicarnos cómo tienes definido el endpoint en tu web.config del cliente??

    También puedes mostrar el código de tu servicehost??

    ejemplo

    <% @ServiceHost 
    Service="MyService"
    Language="C#"
    Debug="true"
    Factory="WebScriptServiceHostFactory"
    %>
    


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 9:19
    Moderador
  • Hola Segio, 

    <endpoint address ="http://www.mipaginaweb.es/wcf/" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1">

    <%@ ServiceHost Language= "VB" Debug="true" Service="WcfServiceLibrary1.Service1" CodeBehind="~/AppCode/Service.vb"%>


    Saludos, Javier J

    viernes, 20 de septiembre de 2013 9:48
  • CodeBehind="~/AppCode/Service.vb"

    Has desplegado esta carpeta en tu iis??


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 9:55
    Moderador
  • CodeBehind

    Especifica el archivo de código fuente que implementa el servicio Web XML, cuando la clase que implementa dicho servicio no reside en el mismo archivo, y no se ha compilado en un ensamblado ni se ha colocado en el directorio \Bin.


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 10:07
    Moderador
  • ¿Que debo poner entonces? He probado a quitar CodeBehind y me ad el mismo error al agregar la referencia de servicio.


    Saludos, Javier J

    viernes, 20 de septiembre de 2013 10:13
  • Supongo que despliegas tu servicio en iis verdad?? En tu directorio virtual añade una carpeta APP_CODE  y mete ahí la clase del servicio Service.vb


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 10:20
    Moderador
  • Ocurre lo mismo.

    Estoy agregando la referencia a 

    http://www.mipaginaweb.es/wcf/WcfServiceLibrary1.Service1.svc


    Saludos, Javier J

    viernes, 20 de septiembre de 2013 10:46
  • Puedes pasarnos TODO el´contenido de tu web.config del servicio y del cliente??

    A ver si tenemos algo raro por ahí...


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 10:54
    Moderador
  • Tambien puedes ir revisando

    Hosting and Consuming WCF Services


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 10:56
    Moderador
  • App.config del servidor:

            

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>

      <system.web>
        <compilation debug="true" />
      </system.web>
      <!-- Al implementar el proyecto de la biblioteca de servicios, el contenido del archivo de configuración se debe agregar al archivo 
      app.config del host. La configuración del sistema no admite archivos de configuración en las bibliotecas. -->
      <system.serviceModel>
        <services>
          <service name="WcfServiceLibrary1.Service1">
            <host>
              <baseAddresses>
                <add baseAddress = "http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />
              </baseAddresses>
            </host>
            <!-- Service Endpoints -->
            <!-- A menos que esté completa, la dirección está en relación con la dirección base suministrada anteriormente -->
            <endpoint address ="http://www.catinformacion.es/wcf/" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1">
              <!-- 
                  Antes de la implementación, se debe quitar o reemplazar el siguiente elemento de identidad para reflejar la 
                  identidad bajo la que funciona el servicio implementado. Si se quita, WCF deducirá automáticamente una identidad 
                   apropiada.
              -->
              <identity>
                <dns value="localhost"/>
              </identity>
            </endpoint>
            <!-- Metadata Endpoints -->
            <!-- El servicio utiliza el extremo de intercambio de metadatos para describirse a sí mismo ante los clientes. --> 
            <!-- Este extremo no utiliza un enlace seguro, por lo que se debe proteger o quitar antes de la implementación -->

          </service>
        </services>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- Para evitar revelar información de los metadatos, 
              establezca el valor siguiente en false y quite el extremo superior de los metadatos antes de la implementación -->
              <serviceMetadata httpGetEnabled="True"/>
              <!-- Para recibir detalles de las excepciones en los fallos, con el fin de poder realizar la depuración, 
              establezca el valor siguiente en true. Para no revelar información sobre las excepciones 
              establézcalo en false antes de la implementación -->
              <serviceDebug includeExceptionDetailInFaults="False" />
            </behavior>
          </serviceBehaviors>
        </behaviors>
        <serviceHostingEnvironment>
          <baseAddressPrefixFilters>
            <add prefix="http://www.catinformacion.es/WCF:8000"/>
          </baseAddressPrefixFilters>
        </serviceHostingEnvironment>
      </system.serviceModel>

    </configuration>

    App.config del cliente:

    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup>
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0,Profile=Client" />
        </startup>
    </configuration>



    Saludos, Javier J

    viernes, 20 de septiembre de 2013 11:18
  • En tu entorno de produccion o el iis deberías cambiar

             <add baseAddress = "http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service1/" />
              </baseAddresses>

    por la direccion base adecuada que supongo seria como  "http://www.catinformacion.es/wcf/


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 11:23
    Moderador
  • si comentas<baseAddress>, se asume que será la dirección donde estuviera el fichero svc


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 11:25
    Moderador
  •  Prueba a cambiar
            <endpoint address ="http://www.catinformacion.es/wcf/" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1">

    por

            <endpoint address ="http://localhost:8732/Design_Time_Addresses/WcfServiceLibrary1/Service1/" binding="basicHttpBinding" contract="WcfServiceLibrary1.IService1">


    Si se solucionó tu consulta no olvides marcar la respuesta. Si te ayudó vótala como útil. Saludos

    viernes, 20 de septiembre de 2013 11:35
    Moderador
  • Ahora, al agrgar la referencia al servicio, me dice

    Error al descargar 'http://www.catinformacion.es/wcf/'.
    Error de la solicitud con el código de estado HTTP 403: Forbidden.
    Los metadatos contienen una referencia que no se puede resolver: 'http://www.catinformacion.es/wcf/'.
    El servidor remoto devolvió una respuesta inesperada: (405) Method Not Allowed.
    Error en el servidor remoto: (405) Método no permitido.
    Si el servicio se define en la solución actual, intente generar la solución y agregar de nuevo la referencia de servicio.


    Saludos, Javier J

    viernes, 20 de septiembre de 2013 11:57
  • SI hago eso no busca en la web ¿no?

    Saludos, Javier J

    viernes, 20 de septiembre de 2013 11:58