Ser*_*dar 6 wcf castle-windsor castle net.tcp wcffacility
我对城堡wcf设施登记感到困惑.
我读了一些BasicHttpBinding的博客文章.但是找不到一个清晰简单的样本来设置net.tcp设置.
我想从控制台应用程序托管服务...
我写了这样的东西......你能在这里看到问题吗?
_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()
)
);
Run Code Online (Sandbox Code Playgroud)
如果您希望发布元数据,则需要启用端口共享(让 MEX 端点与常规 TCP 端口共享相同的端口 - 如果将此设置为 false,您将收到 AddressAlreadyInUse 异常),并且您可能需要指定URL 上的端口(不确定 TCP 会使用哪个端口),所以您的代码应该是(假设端口 8080 适合您):
_container.Register(Component.For<IMembershipService>().ImplementedBy<MembershipService>()
.AsWcfService(
new DefaultServiceModel()
.AddEndpoints(WcfEndpoint
.BoundTo(new NetTcpBinding() { PortSharingEnabled = true})
.At("net.tcp://localhost:8080/MembershipService")
)
.PublishMetadata()
)
);
Run Code Online (Sandbox Code Playgroud)
使用 Castle Windsor 3.0 效果很好。