我在使用Castle Windsor提供的WCF设施时遇到了麻烦。我没有找到适当的文档,可以向我指出当前版本的WCF Facility的一些例子。
以下是我的方案:我想编写一个WCF服务,通过TCP公开,由Windows服务托管。
我不知道如何配置WCF工具,在何处配置它是应该在WCF服务中还是在Windows服务主机中。
当我在WCF配置文件中声明服务端点时,如何配置WCF工具?
有人可以帮忙吗?一个链接将非常感激,虽然我找不到多少。
答案 0 :(得分:2)
这是设置(设计)服务的示例/演练。
对于我的示例,有一个服务契约WindsorWCF.IMyService和一个名为WindsorWCF.MyService的服务。我选择在app config中使用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"));
}
这就是例子 - 我相信它是有道理的。