簡體   English   中英

WCF與多個端點的通信

[英]WCF-Communication with multiple endpoints

我有個問題。 我嘗試建立具有多個入口點的WCF通信。 但是它永遠無法正常工作,並且會顯示如下錯誤消息:

  • 在服務“ {1}”實施的合同列表中找不到合同名稱“ {0}”。

這是我的配置文件:

*

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <appSettings>
    <add key="aspnet:UseTaskFriendlySynchronizationContext" value="true" />
  </appSettings>
  <system.web>
    <compilation debug="true" />
  </system.web>
  <system.serviceModel>
    <services>
      <service name="MwWcfLibrary.Service">

        <endpoint address="net.tcp://localhost:8733" 
                  binding="netTcpBinding"
                  bindingConfiguration=""
                  bindingName="Action"
                  name="ActionInterface" 
                  contract="MwWcfLibrary.Actions.Interfaces.IAction">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint address="mex"
                  binding="mexTcpBinding"
                  bindingConfiguration=""
                  name="Mex"
                  contract="IMetadataExchange" >
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint binding="netTcpBinding"
                  address="net.tcp://localhost:8733"
                  bindingConfiguration=""
                  name="LifeSignInterface"
                  bindingName="LifeSign"
                  contract="MwWcfLibrary.LifeSign.Interfaces.ILifeSign" >
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint binding="netTcpBinding"
                  address="net.tcp://localhost:8733"
                  bindingConfiguration=""
                  name="DataInterface"
                  bindingName="Data"
                  contract="MwWcfLibrary.Notification.Interfaces.IData">
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint binding="netTcpBinding"
                  address="net.tcp://localhost:8733"
                  bindingConfiguration=""
                  name="PublicDataInterface"
                  bindingName="PublicData"
                  contract="MwWcfLibrary.PublicData.Interfaces.IPublicData" >
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>
        <endpoint binding="netTcpBinding"
                  address="net.tcp://localhost:8733"
                  bindingConfiguration=""
                  name="PublicStateInterface"
                  bindingName="PublicState"
                  contract="MwWcfLibrary.PublicState.Interfaces.IPublicState" >
          <identity>
            <dns value="localhost" />
          </identity>
        </endpoint>

        <host>
          <baseAddresses>
            <add baseAddress="net.tcp://localhost:8733//MwWcfLibrary" />
          </baseAddresses>
          <timeouts closeTimeout="00:00:30" />
        </host>
      </service>
    </services>
    <behaviors>
      <serviceBehaviors>
        <behavior name="">
          <serviceMetadata httpGetEnabled="false" httpsGetEnabled="false" />
          <serviceDebug includeExceptionDetailInFaults="false" />
        </behavior>
      </serviceBehaviors>
    </behaviors>
  </system.serviceModel>
</configuration>

*

有人知道我是否配置錯誤?

親切的問候。

編輯

您可能尚未實現以下接口之一: MwWcfLibrary.Actions.Interfaces.IActionMwWcfLibrary.LifeSign.Interfaces.ILifeSignMwWcfLibrary.PublicData.Interfaces.IPublicDataMwWcfLibrary.PublicState.Interfaces.IPublicState

或其中一個或多個未使用[ServiceContract]屬性修飾

在您的問題中包含實際錯誤而不是'{0}',您會看到Service類未實現您的某些合同,該合同應至少如下所示:

class Service : IAction, ILifeSign, IPublicData, IPublicState
{
  // implementation
}

另外,您的地址屬性似乎不正確,因為您定義了以// Mww ...結尾的基地址,但是在端點中,該地址比基地址短。 端點地址可以只是相對的,例如"Service"

先前

Service元素引用一個類,該類是ServiceContract接口的實現,該類屬於endpoint合同屬性。 在這些屬性中驗證接口和類的標准名稱。

通過查看配置文件,您可以說類MwWcfLibrary.Service實現了(裝飾有[ServiceContract] )接口,稱為MwWcfLibrary.Actions.Interfaces.IActionMwWcfLibrary.LifeSign.Interfaces.ILifeSignMwWcfLibrary.PublicData.Interfaces.IPublicDataMwWcfLibrary.PublicState.Interfaces.IPublicState

那似乎是錯誤的。 您是說要有兩個服務,每個服務有一個單獨的端點?

暫無
暫無

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

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