WCF Web服务客户端与Castle windsor

时间:2011-08-20 13:56:08

标签: c# wcf castle-windsor

我正在使用.net 3.5。和城堡2.5.2。

我有一个WCF网络服务。

我正在尝试构建一个使用castle的客户端(mvc 2.0网站)来注入代理。

所以我使用svcutil生成了一个代理。 我把代理放在我的客户网站上,并将其注册到容器中,如下所示:

container.Register(
            Component.For<IMyWCFServiceProxy>()
                .ImplementedBy<WCFServiceProxy>());

然后将代理接口注入我调用该服务的类中。 到目前为止都很好。

然而,当我在代理上调用web方法时,我得到了: “通信对象System.ServiceModel.Channels.ServiceChannel不能用于通信,因为它处于Faulted状态。”

所以我想知道,当我向容器注册客户端代理时,是否必须添加更多信息。即与通道状态有关。我找不到有关设置客户端的任何文档。

非常感谢。

1 个答案:

答案 0 :(得分:3)

我的问题是我在注册代理时错过了对结束点的引用。此更改后,该服务正在运行:

    Component.For<IMyWCFServiceProxy>()
                .ActAs(DefaultClientModel
                           .On(WcfEndpoint.FromConfiguration("wsHttpEndpoint"))).
                ImplementedBy<MyWCFServiceProxy>());

虽然,我周末一直在阅读这篇文章,并且看起来很像。

http://favcode.net/browse/using_castle_dynamic_proxy_to_create_a_wcf_proxy_via_channelfactory