6

我对城堡 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()
    )
);
4

1 回答 1

4

如果您希望发布元数据,您需要启用端口共享(让 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()
    )
);

使用城堡温莎 3.0 可以正常工作。

于 2011-12-22T14:08:56.747 回答