Sono confuso riguardo alla registrazione della struttura del wcf del castello.Ho bisogno del file svc per configurare Castle Wcf Facility per servizi non HTTP
Ho letto alcuni post di blog per BasicHttpBinding. Ma non è stato possibile trovare un chiaro esempio per configurare una configurazione net.tcp.
voglio ospitare il servizio da un'applicazione console ...
ho scritto qualcosa di simile ... si può vedere un problema qui?
_container = new WindsorContainer();
_container.AddFacility<WcfFacility>();
_container.Register(Component.For<IMembershipService>().ImplementedBy<MembershipService>()
.AsWcfService(
new DefaultServiceModel()
.AddEndpoints(WcfEndpoint
.BoundTo(new NetTcpBinding() { PortSharingEnabled = false })
.At("net.tcp://localhost/MembershipService")
)
.PublishMetadata()
)
);
Tenere presente la possibilità che un utente non sia autorizzato a utilizzare la condivisione porta. Ho avuto questo problema, ho ottenuto una CommunicationException con il suggerimento che potevo modificare la sezione allowAccounts nel file SMSvcHost.exe.config per consentire all'utente di farlo. Ma questa soluzione non è praticabile perché il file si trova in C: \ Windows \ Microsoft.NET \ ... La mia soluzione finora: Rimuovi Mex Endpoint/PublishMetadata(). Pubblicherò i metadati con una seconda configurazione vincolante, se necessario in futuro. –
Oh, e prima ho avuto il "Net.Tcp Port Sharing Service" disabilitato nei miei servizi Windows. Anche il tuo utente finale potrebbe avere disabilitato questo e potrebbe non essere autorizzato ad abilitarlo (e abilitarlo usando un programma di installazione non è una buona opzione) –