Estoy confundido acerca del registro de la instalación wcf del castillo.¿Necesito el archivo svc para configurar Castle Wcf Facility para servicios que no son HTTP?
He leído algunas publicaciones de blog para BasicHttpBinding. Pero no se pudo encontrar una muestra fácil y clara para configurar una configuración net.tcp.
quiero para alojar el servicio de una aplicación de consola ...
escribí algo como esto ... se puede ver un problema aquí?
_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()
)
);
Tenga en cuenta la posibilidad de que un usuario no pueda compartir puertos. Tuve este problema, recibí una CommunicationException con la sugerencia de que podía editar la sección allowAccounts en el archivo SMSvcHost.exe.config para permitir que el usuario lo hiciera. Pero esta solución no es factible porque el archivo se encuentra en C: \ Windows \ Microsoft.NET \ ... Mi solución hasta el momento: elimine Mex Endpoint/PublishMetadata(). Publicaré los metadatos con una segunda configuración de enlace, si es necesario en el futuro. –
Ah, y antes tenía el "Net.Tcp Port Sharing Service" deshabilitado en mis servicios de Windows. Es posible que su usuario final también lo tenga deshabilitado y no se le permita habilitarlo (y habilitarlo usando un instalador no es una opción bonita) –