WCF启动主机错误

WCF启动主机错误,wcf,named-pipes,servicehost,Wcf,Named Pipes,Servicehost,我想启动以下WCF服务: <system.serviceModel> <services> <service name="MTPlatform"> <endpoint address="TradingService" behaviorConfiguration="ServiceBehaviour" binding="netNamedPipeBinding" bindin

我想启动以下WCF服务:

<system.serviceModel>
  <services>
   <service name="MTPlatform">
      <endpoint address="TradingService" behaviorConfiguration="ServiceBehaviour"
               binding="netNamedPipeBinding"  
               bindingConfiguration="NetNamedPipeBinding_IGenericTradingInterface"
               contract="GenericTradingInterface.IGenericTradingInterface"
               name="TradingService"  />
      <endpoint address="mex" binding="mexNamedPipeBinding" contract="IMetadataExchange" />
      <host>
        <baseAddresses>
           <add baseAddress="net.pipe://localhost" />
        </baseAddresses>
        <timeouts closeTimeout="00:00:02" openTimeout="00:00:20" />
      </host>
   </service>
  </services>
  <bindings>
     <netNamedPipeBinding>
        <binding name="NetNamedPipeBinding_IGenericTradingInterface"
                 closeTimeout="00:05:20" openTimeout="00:00:20" receiveTimeout="05:20:00"
                 sendTimeout="00:10:00" transactionFlow="false" transferMode="Buffered"
                 transactionProtocol="OleTransactions" hostNameComparisonMode="StrongWildcard"
                 maxBufferPoolSize="2147483646" maxBufferSize="2147483646" maxConnections="10"
                 maxReceivedMessageSize="2147483646">
              <readerQuotas maxDepth="2147483646" maxStringContentLength="2147483646"
                            maxArrayLength="2147483646" maxBytesPerRead="2147483646" 
                            maxNameTableCharCount="2147483646" />
              <security mode="Transport">
                 <transport protectionLevel="EncryptAndSign" />
              </security>
         </binding>
     </netNamedPipeBinding>
   </bindings>
   <behaviors>
       <endpointBehaviors>
           <behavior name="ServiceBehaviour">
               <dataContractSerializer maxItemsInObjectGraph="2147483646" />
           </behavior>
       </endpointBehaviors>
       <serviceBehaviors>
           <behavior name="MetaDataBehavior">
                <serviceMetadata />
           </behavior>
       </serviceBehaviors>
   </behaviors>
</system.serviceModel>

这在以下情况下失败:

在列表中找不到合同名称“IMetadataExchange” 由服务MT5平台执行的合同数量。添加 ServiceMetadataBehavior到配置文件或 ServiceHost直接启用对此合同的支持

我在这里没有看到大错误,在哪里可以找到
imeadataexchange

谢谢


Juergen

您需要在
元素中引用名为“MetaDataBehavior”的服务行为。此外,为了团队中其他开发人员的理智起见,请不要让端点行为的名称为“ServiceBehavior”-这是自找麻烦:)


<system.serviceModel>
<services> 
 <service name="MTPlatform" behaviorConfiguration="MetaDataBehavior"> 
  <endpoint address="TradingService" behaviorConfiguration="IncreaseMIIOGEndpointBehaviour" 
   binding="netNamedPipeBinding" bindingConfiguration="NetNamedPipeBinding_IGenericTradingInterface" 
   name="TradingService" contract="GenericTradingInterface.IGenericTradingInterface" /> 
  <endpoint address="mex" binding="mexNamedPipeBinding" contract="IMetadataExchange" /> 
  <host> 
   <baseAddresses> 
    <add baseAddress="net.pipe://localhost" /> 
   </baseAddresses> 
   <timeouts closeTimeout="00:00:02" openTimeout="00:00:20" /> 
  </host> 
 </service> 
</services> 
<behaviors> 
 <endpointBehaviors> 
  <behavior name="IncreaseMIIOGEndpointBehaviour"> 
   <dataContractSerializer maxItemsInObjectGraph="2147483646" /> 
  </behavior> 
 </endpointBehaviors> 
 <serviceBehaviors> 
  <behavior name="MetaDataBehavior"> 
   <serviceMetadata /> 
  </behavior> 
 </serviceBehaviors> 
</system.serviceModel>