1个端点多个服务合同 - wcf?

时间:2009-07-22 20:05:43

标签: c# wcf

我创建了一项服务,允许客户搜索用户信息。这是作为ISearchUsers接口公开的。

我用这篇文章作为基础,但无济于事:不确定这是否可行 link text

现在我想创建并公开一个名为ICreateUser的接口,我假设我必须创建一个新的端点,basicHttp绑定并使用上面的文章。

这是我配置的一部分:

 <services>
      <service behaviorConfiguration="Service.Service1Behavior"
        name="Service.SearchService">
        <clear />
        <endpoint binding="basicHttpBinding" bindingConfiguration="WsHttpMtomBinding"
          contract="Service.ISearchService" listenUriMode="Explicit">
          <identity>
            <dns value="localhost" />

          </identity>
        </endpoint>
        <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange"
          listenUriMode="Explicit">

        </endpoint>
        <host>
          <baseAddresses>
            <add baseAddress="http://localhost:8731/Service/Service1/" />
          </baseAddresses>
        </host>
      </service>
    </services>

1 个答案:

答案 0 :(得分:0)

您可以扩展实现ISearchUser的当前服务类,并让它实现ICreateUser - 在这种情况下,您可以向服务配置添加第二个端点:

<services>
  <service name="Service.SearchService"
           behaviorConfiguration="Service.Service1Behavior">
     <host>
        <baseAddresses>
           <add baseAddress="http://localhost:8731/Services/" />
        </baseAddresses>
     </host>
     <endpoint 
          address="SearchUser"
          binding="basicHttpBinding" bindingConfiguration="WsHttpMtomBinding"
          contract="Service.ISearchService">
        <identity>
          <dns value="localhost" />
        </identity>
     </endpoint>
     <endpoint 
          address="CreateUser"
          binding="basicHttpBinding" bindingConfiguration="WsHttpMtomBinding"
          contract="Service.ICreateUserService">
        <identity>
          <dns value="localhost" />
        </identity>
     </endpoint>
     <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" />
   </service>
</services>

在你的情况下最有可能不起作用的一件事是你选择“basicHttpBinding”作为你的绑定,但bindingConfiguration似乎表明WsHttpBidning .....那些需要匹配,因此应该是:< / p>

<endpoint 
    address="CreateUser"
    binding="basicHttpBinding" bindingConfiguration="basicHttpMtomBinding"
    contract="Service.ICreateUserService">

马克