Domanda

Sto provando a convertire il mio sito esistente per usare WCF per comunicare con i miei servizi su un'altra scatola. Attualmente utilizzo la registrazione automatica per collegare direttamente i miei servizi. Quando provo ad usare WcfFacility di Windsor ricevo una ComponentRegistrationException su una delle mie interfacce che sto provando a registrare. L'errore è di seguito, si verifica solo su una particolare interfaccia, tutte le altre interfacce funzionano correttamente e sono codificate allo stesso modo.

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

Ho un'altra applicazione Windows Form che ho convertito per usare WCF con gli stessi servizi e questo funziona al 100%.

Registro i servizi WCF (sia in Windows che nelle app Web) utilizzando il seguente codice:

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

L'interfaccia è contrassegnata con gli attributi ServiceContract e OperationContract ed è uguale a tutti gli altri.

Non ho idea del perché Windsor stia vedendo questo come una classe astratta ma sta registrando l'altro correttamente.

Qualche idea?

È stato utile?

Soluzione

Ho risolto questo problema, sembra che in qualche modo abbia eliminato la riga di codice che registra la WCFFacility sull'app Web, ma l'ho ancora avuta sull'app di Windows, il che spiega perché funzionava lì. Sono un idiota sembra ... vabbè.

Speriamo che questo possa aiutare chiunque si imbatta in quell'eccezione e che è tanto idiota quanto me :)

Grazie comunque per l'aiuto.

Altri suggerimenti

Ottieni l'ultima build. Credo che sia stato risolto.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top