0

我在使用 Castle Windsor 提供的 WCF 设施时遇到了真正的麻烦。我没有找到合适的文档来指出当前版本的 WCF Facility 的一些示例。

以下是我的场景:我想编写一个 WCF 服务,通过 TCP 公开,该服务将由 Windows 服务托管。

我不知道如何配置 WCF 工具,在哪里配置它是否应该在 WCF 服务或 Windows 服务主机中。

另外,当我的服务端点在 WCF 配置文件中声明时,我将如何配置 WCF 工具?

有人可以帮忙吗?一个链接将不胜感激,虽然我找不到太多。

4

1 回答 1

2

这是设置(人为的)服务的示例/演练。

对于我的示例,有一个服务合同 WindsorWCF.IMyService 和一个名为 WindsorWCF.MyService 的服务。我选择在应用程序配置中使用 TCP 端点配置服务,如下所示:

<system.serviceModel>
  <services>
    <service name="WindsorWCF.MyService">
      <endpoint name ="IMyService_Endpoint" address="net.tcp://localhost:9876/MyService" binding="netTcpBinding" contract="WindsorWCF.IMyService" />
    </service>
  </services>
</system.serviceModel>

接下来,将一个 Window 配置 (XML) 文件添加到您的服务项目,并向其中添加一个组件:

<configuration>
  <components>
    <component id="MyService" service="WindsorWCF.IMyService, WindsorWCF" type="WindsorWCF.MyService, WindsorWCF" />
  </components>
</configuration>

在服务宿主应用程序本身中,我添加了以下代码(我在编写代码时使用了控制台应用程序,但思路是一样的):

static void Main(string[] args)
{
    InitWindsor();
    var host = new DefaultServiceHostFactory().CreateServiceHost("MyService", new Uri[0]);
    host.Open();
    Console.ReadLine();
}

static IWindsorContainer Container { get; set; }
private static void InitWindsor ()
{
    Container = new WindsorContainer().AddFacility<WcfFacility>().Install(Configuration.FromXmlFile("windsor.config"));
}

这就是示例 - 我相信它是有道理的。

于 2012-05-29T09:26:49.430 回答