2012-05-29 106 views
0

我遇到了溫莎城堡提供的WCF設施真正的麻煩。我沒有找到適當的文檔,可以指出我使用當前版本的WCF工具的一些示例。城堡WCF設施容器配置

以下是我的場景:我想寫一個WCF服務,通過TCP公開的將由Windows服務託管的WCF服務。

我不知道如何配置WCF工具,在哪裏配置它是否應該在WCF服務或Windows服務主機。

另外,如何在WCF配置文件中聲明服務端點時配置WCF工具?

有人可以幫忙嗎?一個鏈接將非常感激,雖然我找不到多少。

回答

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> 

下,添加一個窗口配置(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")); 
} 

就是這樣的示例 - 我相信這是有道理的。

+0

謝謝!我將如何配置依賴到我的服務。我想理想的把他們放進一個溫莎的球員。在你的例子中:如何在代碼中設置MyService的依賴關係(可以說它是一個IRepository),而不是來自配置文件? – Mike

+0

這是一個較老的線程,但處於類似的情況。我如何使用配置文件託管多個服務?請指教。 – Sai