none
Error en app config y web config en WFC RRS feed

  • Pregunta

  • Hola a todos..tengo un proyecto que lee datos de un WCF y y es una librería de clases que tiene la referencia al servicio. He credo una aplicación de prueba de consola, desde la que acceso al WCF mediante la capa de negocio y me esta dando un erro que se que es algo en el fichero de configuración del proyecto donde esta la referencia al servicio y el web config del WCF pero no logro ver que sucede. El error es justo al instanciar el cliente:

    System.InvalidOperationException
      HResult=0x80131509
      Mensaje = No se encontró el elemento de extremo predeterminado que hace referencia al contrato 'ServiceReferenceGNB.ISGNB' en la sección de configuración de cliente de ServiceModel. La razón puede ser que no se encontró ningún archivo de configuración para la aplicación o que no se encontró ningún elemento de extremo correspondiente a este contrato en el elemento de cliente.
      Origen = System.ServiceModel
      Seguimiento de la pila:
       en System.ServiceModel.Description.ConfigLoader.LoadChannelBehaviors(ServiceEndpoint serviceEndpoint, String configurationName)
       en System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName, Configuration configuration)
       en System.ServiceModel.ChannelFactory.ApplyConfiguration(String configurationName)
       en System.ServiceModel.ChannelFactory.InitializeEndpoint(String configurationName, EndpointAddress address)
       en System.ServiceModel.ChannelFactory`1..ctor(String endpointConfigurationName, EndpointAddress remoteAddress)
       en System.ServiceModel.ConfigurationEndpointTrait`1.CreateSimplexFactory()
       en System.ServiceModel.ConfigurationEndpointTrait`1.CreateChannelFactory()
       en System.ServiceModel.ClientBase`1.CreateChannelFactoryRef(EndpointTrait`1 endpointTrait)
       en System.ServiceModel.ClientBase`1.InitializeChannelFactoryRef()
       en System.ServiceModel.ClientBase`1..ctor()
       en WSDataAccess.ServiceReferenceGNB.SGNBClient..ctor() en C:\Users\raice\Source\Repos\Proyect_Solution\WSDataAccess\Connected Services\ServiceReferenceGNB\Reference.cs: línea 86
       en WSDataAccess.TransactionsWSDA.GetProductTransactions(String productId, Decimal& totalAmount) en C:\Users\raice\Source\Repos\Proyect_Solution\WSDataAccess\TransactionsWSDA.cs: línea 20
       en BussinesGNB.TransactionsBL.GetProductTransactions(String productId, Decimal& totalAmount) en C:\Users\raice\Source\Repos\Proyect_Solution\Bussines\TransactionsBL.cs: línea 31
       en TestApp.Program.Main(String[] args) en C:\Users\raice\Source\Repos\Proyect_Solution\TestApp\Program.cs: línea 23


    Este es el codigo del app config del proyecto de libreria de calses:

      
    <?xml version="1.0" encoding="utf-8" ?>
    <configuration>
        <startup> 
            <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.5.2" />
          <system.serviceModel>
            <bindings>
              <basicHttpBinding>
                <binding name="BasicHttpBinding_ISGNB" />
              </basicHttpBinding>
            </bindings>
            <client>
              <endpoint address="http://localhost:54140/SGNB.svc" binding="basicHttpBinding"
                  bindingConfiguration="BasicHttpBinding_ISGNB" contract="ServiceReferenceGNB.ISGNB"
                  name="BasicHttpBinding_ISGNB" />
            </client>
          </system.serviceModel>
        </startup>
    
    </configuration>


    Y el del WCF , web config asi:

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    
      <appSettings>
        <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
      </appSettings>
      <system.web>
        <compilation debug="true" targetFramework="4.5.2" />
        <httpRuntime targetFramework="4.5.2"/>
      </system.web>
      <system.serviceModel>
        <behaviors>
          <serviceBehaviors>
            <behavior>
              <!-- Para evitar revelar información de los metadatos, establezca los valores siguientes en false antes de la implementación -->
              <serviceMetadata httpGetEnabled="true" httpsGetEnabled="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>
        <protocolMapping>
            <add binding="basicHttpsBinding" scheme="https" />
        </protocolMapping>    
        <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" />
      </system.serviceModel>
      <system.webServer>
        <modules runAllManagedModulesForAllRequests="true"/>
        <!--
            Para examinar el directorio raíz de la aplicación web durante la depuración, establezca el valor siguiente en true.
            Establézcalo en false antes de la implementación para evitar revelar información sobre la carpeta de aplicación web.
          -->
        <directoryBrowse enabled="true"/>
      </system.webServer>
    
    </configuration>

    Alguien puede decirme que estoy haciendo mal??...he probado copiar los endpoints del app para el app del fichero de la aplicación de consola , pero nada, he probado copiarlos al web config pero tampoco funciona...Ayuda???

    Gracias !!!!!!



    domingo, 6 de mayo de 2018 21:40

Respuestas

  •  Si abres un explorador de internet y accedes a http://localhost:54140/SGNB.svc?wsdl

    Obtienes respuesta?


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

    martes, 22 de mayo de 2018 11:19
    Moderador
  • Las app.config de las bibliotecas de clase no son tomadas en cuenta a la hora de que el proyecto corre.  Solamente soportan los diseñadores de Visual Studio.

    Si al final la biblioteca de clases es consumida en web, entonces la configuración del WCF va en web.config; si la bilbioteca de clases es consumida en un proyecto de consola, entonces la configuración del WCV va en el app.config del proyecto de consola.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    miércoles, 23 de mayo de 2018 2:15

Todas las respuestas

  • Hola

    Es posible que este tratando de buscar el endpoint en el app.config de la aplicación consola, verifica agregando las lineas del endpoint . Cada libreria de clases genera un app.config, yo prefiero dejar un solo config dejando todas informacion que las librerias necesitan.

    Saludos

    Harold Chia 


    Harold Chia

    martes, 22 de mayo de 2018 2:06
  • Hola, haciendo pruebas con tu cliente, has validado que esté levantado tu servicio? 

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

    martes, 22 de mayo de 2018 11:18
    Moderador
  •  Si abres un explorador de internet y accedes a http://localhost:54140/SGNB.svc?wsdl

    Obtienes respuesta?


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

    martes, 22 de mayo de 2018 11:19
    Moderador
  • Las app.config de las bibliotecas de clase no son tomadas en cuenta a la hora de que el proyecto corre.  Solamente soportan los diseñadores de Visual Studio.

    Si al final la biblioteca de clases es consumida en web, entonces la configuración del WCF va en web.config; si la bilbioteca de clases es consumida en un proyecto de consola, entonces la configuración del WCV va en el app.config del proyecto de consola.


    Jose R. MCP
    My GIT Repositories | Mis Repositorios GIT

    miércoles, 23 de mayo de 2018 2:15