我正在使用 Castle WCF Integration Facility,并且我的第一个 webHttp 端点的一切工作正常。要使此端点工作,它要求端点启用了 WebHttpBehavior。我能够使用以下方法实现这一目标:
container.Register(Component.For<IEndpointBehavior>()
.ImplementedBy<WebHttpBehavior>());
当我尝试使用与 WebHttpBehavior 不兼容的 BasicHttpBinding 启用第二个端点时,这会成为一个问题。
有没有办法指定上面的 IEndPointBehavior 注册只适用于某个端点?
这是我的服务的完整安装程序:
container.AddFacility<WcfFacility>(f => f.CloseTimeout = TimeSpan.Zero)
.Register(Component.For<IDiagnosticService>()
.ImplementedBy<DiagnosticService>()
.Named("DiagnosticService")
.LifestyleTransient()
.AsWcfService(new DefaultServiceModel()
.Hosted()
.AddEndpoints(WcfEndpoint.BoundTo(new WebHttpBinding()).At("json"))
.AddEndpoints(WcfEndpoint.BoundTo(new BasicHttpBinding()).At("soap"))
.PublishMetadata(o => o.EnableHttpGet())));
container.Register(Component.For<IEndpointBehavior>()
.ImplementedBy<WebHttpBehavior>());