簡體   English   中英

wcf自托管多種服務

[英]wcf self hosting multiple service

在我的項目中,我有兩個服務Service1和Service2(即服務合同)。我想使用控制台對這兩個服務進行自我托管。為此,我使用名為“ myservice”的服務並實現兩個接口,例如IService1和IService2

public class myservice : IService1,IService2
...
....


ServiceHost serviceHost = new ServiceHost(typeof(myservice));
serviceHost.Open();

使用的端點:

 <service behaviorConfiguration="myBehavior" name="myservice">
    <endpoint address="sa1" binding="netTcpBinding" contract="IService1"/>
    <endpoint address="sa2" binding="netTcpBinding" contract="IService2"/>
  <host>
    <baseAddresses>
      <add baseAddress="net.tcp://localhost:8001/" />
    </baseAddresses>
  </host>
</service>

我希望這兩個是單獨的服務,即具有tcp綁定和自托管功能的名為Service1和Service2的服務(而不是myservice)。任何代碼/幫助/建議都值得贊賞。

如果必須具有兩個單獨的服務-那么就需要兩個單獨的服務實現類以及兩個單獨的ServiceHost實例:

public class Service1 : IService1
{
  ...
}

public class Service2 : IService2
{
  ...
}


ServiceHost serviceHost1 = new ServiceHost(typeof(Service1));
serviceHost1.Open();

ServiceHost serviceHost2 = new ServiceHost(typeof(Service2));
serviceHost2.Open();

端點配置:

<service name="YourNamespace.Service1" behaviorConfiguration="myBehavior" >
    <endpoint address="sa1" binding="netTcpBinding" contract="IService1" />
    <host>
       <baseAddresses>
         <add baseAddress="net.tcp://localhost:8001/" />
       </baseAddresses>
    </host>
</service>
<service name="YourNamespace.Service2" behaviorConfiguration="myBehavior" >
    <endpoint address="sa2" binding="netTcpBinding" contract="IService2" />
    <host>
       <baseAddresses>
         <add baseAddress="net.tcp://localhost:8002/" />
       </baseAddresses>
    </host>
</service>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM