Domanda

Come faccio a utilizzare il Castello WcfFacility e farlo utilizzare le impostazioni standard file di configurazione WCF?

Se mi iscrivo in questo modo:

container.Register(
AllTypes.Pick()
    .FromAssemblyNamed("{ServicesAssembly}") // <-- service assembly here
    .If(type => type.Name.EndsWith("Service"))
    .WithService.FirstInterface()
    .Configure(configurer => configurer.LifeStyle.Transient)
    .Configure(configurer => configurer.Named(configurer.Implementation.Name))
    .Configure(configurer => configurer.ActAs(new DefaultServiceModel()))
);

ricevo il seguente errore:

Servizio '{nome}' ha un'applicazione zero (non-infrastrutture) endpoint.

Se lascio fuori:

.Configure(configurer => configurer.ActAs(new DefaultServiceModel()))

sembra come se i comportamenti della configurazione vengono ignorate.

Qual è l'uso corretto qui?

È stato utile?

Soluzione

OK, capito tutto:)

mi iscrivo in questo modo:

container.Register(
AllTypes.Pick()
    .FromAssemblyNamed("{ServicesAssembly}") // <-- service assembly here
    .If(type => type.Name.EndsWith("Service"))
    .WithService.FirstInterface()
    .Configure(configurer => configurer.LifeStyle.Transient)
    .Configure(configurer => configurer.Named(configurer.Implementation.Name))
    .Configure(configurer => configurer.ActAs(new DefaultServiceModel().Hosted()))
);

Il Hosted () è lì a indicare che Sto ospitando i servizi; altra cosa è sembra come se il WCF Fondo cercherà di ospitarli, con conseguente conflitti di porta.

Quindi, il problema era che il nome del servizio nel file di configurazione ha per essere il nome completo del tipo di applicazione. Se non si riceve un errore che indica qualcosa sulla falsariga di nessun endpoint definiti. Così il nome del servizio è non lo stesso come il nome specificato a Windsor.

Altri suggerimenti

Ci siamo quasi.

Hai bisogno di questo:

.ActAs(new DefaultClientModel(WcfEndpoint.FromConfiguration( <<key In Configuration>> )));
Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top