Jestem zdezorientowany co do rejestracji obiektu w zamku wcf.Czy potrzebuję pliku svc do instalacji obiektu Castle Wcf dla usług innych niż HTTP
Przeczytałem kilka wpisów na blogu dla BasicHttpBinding. Nie można jednak znaleźć łatwej próbki do skonfigurowania konfiguracji net.tcp.
Chcę hosta usługi z aplikacji konsoli ...
napisałem coś takiego ... widać tu problem?
_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()
)
);
Należy pamiętać o tym, że użytkownik nie może korzystać z udostępniania portów. Miałem ten problem, dostałem wyjątek CommunicationException z podpowiedzią, że mogę edytować sekcję allowAccounts w pliku SMSvcHost.exe.config, aby umożliwić użytkownikowi to zrobić. Ale to rozwiązanie nie jest możliwe, ponieważ plik znajduje się w C: \ Windows \ Microsoft.NET \ ... Moje rozwiązanie do tej pory: Usuń Mex Endpoint/PublishMetadata(). Opublikuję metadane z drugą konfiguracją wiązania, jeśli będzie taka potrzeba w przyszłości. –
Aha, i zanim zostałem wyłączony "Usługa udostępniania portów Net.Tcp" w moich usługach Windows. Twój użytkownik końcowy może mieć to również wyłączone i może nie mieć możliwości włączenia go (i włączenie go przy użyciu instalatora nie jest dobrą opcją) –