【问题标题】:How to define Endpoints for multiple Service contracts implemented in different classes?如何为在不同类中实现的多个服务合同定义端点?
【发布时间】:2010-08-26 05:32:18
【问题描述】:

我采用了一个 WCFService 库,其中我在单独的 cs 文件中定义了多个服务合同(接口)并分别实现它们。例如..

[ServiceContract]
public interface IService1
{
     [OperationContract]  
    string GetService1Msg();
}

[ServiceContract]
public interface IService2
{
    [OperationContract]
    string GetService2Msg();
}

我已经在单独的cs文件中定义了上面的接口。现在我已经分别实现了它们如下。

这是 Service1.cs 文件:

public class Service1 : IService1
{
    string GetService1Msg()
    {  
        return "Service1";
    }
}

这是 Service2.cs 文件:

public class Service2 : IService2
{
    string GetService2Msg()
    {  
        return "Service2";
    }
}

我在这里的目的是将以上两个公开为外部的两个服务合同/接口。 现在我的问题是如何在这个 WCF 服务库的 app.config 中为这两个服务接口定义端点?

【问题讨论】:

    标签: wcf


    【解决方案1】:

    这是 Net.Tcp 上公开的两个服务的基本配置,每个服务都有一个数据端点和元数据端点:

    <behaviors>
      <serviceBehaviors>
        <behavior name="Metadata">
         <serviceMetadata />
        </behavior>
      <serviceBehaviors>
    </behaviors>
    <services>
      <service name="Namespace1.Service1" behaviorConfiguration="Metadata"> 
        <host>
         <baseAddresses>
          <add baseAddress="net.tcp://localhost/Service1" />
         </baseAddresses>
         <endpoint address="" binding="netTcpBinding" contract="Namespace1.IService1" />
         <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
        </host>
      </service>
      <service name="Namespace2.Service2" behaviorConfiguration="Metadata"> 
        <host>
         <baseAddresses>
          <add baseAddress="net.tcp://localhost/Service2" />
         </baseAddresses>
         <endpoint address="" binding="netTcpBinding" contract="Namespace2.IService2" />
         <endpoint address="mex" binding="mexTcpBinding" contract="IMetadataExchange" />
        </host>
      </service>
    </services>
    

    您仍然需要一些代码来托管您的服务。

    【讨论】:

    • 你描述的端点对我有好处。但是如果我必须使用 http 绑定,那么我该如何定义端点。我是否需要为每个服务提供单独的网址?
    猜你喜欢
    • 2023-03-11
    • 1970-01-01
    • 1970-01-01
    • 2011-07-06
    • 1970-01-01
    • 1970-01-01
    • 2012-03-22
    • 2012-11-24
    • 1970-01-01
    相关资源
    最近更新 更多