Pregunta

Estoy intentando convertir mi sitio existente para usar WCF para comunicarme con mis servicios en otra casilla. Actualmente utilizo el registro automático para conectar mis servicios directamente. Cuando trato de usar WcfFacility of Windsor, obtengo una excepción ComponentRegistrationException en una de mis interfaces que estoy intentando registrar. El error está debajo, solo ocurre en una interfaz particular, todas las demás interfaces funcionan correctamente y están codificadas de la misma manera.

Type Demo.IFooService is abstract.
As such, it is not possible to instansiate it as implementation of Demo.IFooService service

Tengo otra aplicación de formularios de Windows que convertí para usar WCF con los mismos servicios y esto funciona al 100%.

Registro los servicios WCF (tanto en Windows como en aplicaciones web) con el siguiente código:

Container.Register(Component.For<IFooService>()
.Named("FooService")
.ActAs(new DefaultClientModel
  {
    EndPoint = WcfEndPoint.BoundTo(new BasicHttpBinding())
               .At("http://localhost/services/fooservice.svc")
  }
 ));

La interfaz está marcada con los atributos ServiceContract y OperationContract, y es la misma que todas las demás.

No tengo idea de por qué Windsor ve esto como una clase abstracta, pero está registrando la otra correctamente.

¿Alguna idea?

¿Fue útil?

Solución

Resolví este problema, parece que de alguna manera eliminé la línea de código que registra la WCFFacility en la aplicación web, pero aún la tenía en la aplicación de Windows, lo que explica por qué funcionaba allí. Soy un idiota, parece ... oh bien.

Espero que esto ayude a cualquiera que se encuentre con esa excepción y que sea tan idiota como yo :)

Gracias por la ayuda de todos modos.

Otros consejos

Consigue la última versión. Creo que esto ha sido arreglado.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top