2016-07-15 17 views
0
I am trying to use both tcp as well as msmq but it gives an error msmq doesn't support dual binding or it's not properly configured, how to solve this issue? 
I have created two end points. 

I tried to do something like this 



    <?xml version="1.0" encoding="utf-8" ?> 
<configuration> 
    <system.serviceModel> 
    <bindings> 
     <netTcpBinding> 
     <binding name="Binding_Config" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:02:30"> 
      <security mode="None"> 
      <transport clientCredentialType ="None" protectionLevel="None"></transport> 
      <message clientCredentialType="None"/> 
      </security> 
     </binding> 
     </netTcpBinding> 

     <netMsmqBinding> 
     <binding name="ServiceBinding" durable="true" exactlyOnce="true" useActiveDirectory="false" receiveTimeout="00:10:00" sendTimeout="00:10:00" openTimeout="00:02:30" > 
      <security mode="None"> 
      <transport 
       msmqAuthenticationMode="None" 
       msmqProtectionLevel="None" 

       /> 
      </security> 
     </binding> 
     </netMsmqBinding> 
    </bindings> 

    <services> 
     <service name="WCFLib.SignalService" 
     behaviorConfiguration = "SignalServiceMEXBehavior"> 
     <endpoint address ="TradeSignalService" 
     binding="netTcpBinding" 
     contract="TradeServiceLib.ITradeSignalService" bindingConfiguration="Binding_Config"/> 
     <!-- Enable the MEX endpoint --> 

     <!-- Need to add this so MEX knows the address of our service --> 


     <endpoint address="net.msmq://localhost/private/FirstQueue" binding="netMsmqBinding" contract="TradeServiceLib.ITradeSignalService" bindingConfiguration="ServiceBinding"/> 
     <!--<endpoint address="mex" binding="netTcpBinding" contract="IMetadataExchange"/>--> 


     <host> 
      <baseAddresses> 
      <add baseAddress ="http://192.168.1.125:2344"/> 
      <add baseAddress ="net.tcp://192.168.1.125:2348"/> 
      </baseAddresses> 
     </host> 
     </service> 
    </services> 
    <!-- A behavior definition for MEX --> 
    <behaviors> 
     <serviceBehaviors> 
     <behavior name="SignalServiceMEXBehavior" > 
      <serviceMetadata httpGetEnabled="true" /> 
      <serviceDebug includeExceptionDetailInFaults="true"/> 
     </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    </system.serviceModel> 

    <connectionStrings> 
    <clear /> 

    </connectionStrings> 

</configuration> 

I am not sure where I am wrong. 

私はなぜこのサイトにこのテキストを入力する必要があるのか​​分からないので、この行を入力してください。これは私には分かりませんが、このサイトは私からこのテキストを入力する必要があります。なぜこのサイトは私からこのテキストを入力する必要があるので、この行を入力してください。これを無視してください。なぜこのサイトは私からこのテキストを入力する必要があるので、この行を入力する必要はありません。このサイトは私からのより多くのテキストを必要とするので、この行を入力してください。これを無視してください。netTcpBindingとnetMsmqBindingを一緒に使用する方法は?

+0

あなたはあなたを助ける誰かにためにあなたのコードまたはweb.configファイルを共有する必要があります。 –

+1

さて、アドバイスをいただきありがとうございます。 – User

答えて

0

これらの2つのバインディングは非常に異なります。異なるアドレスに公開され、異なるバインディングで設定された同じサービスに対して、2つのエンドポイントが必要です。

この詳細については、MSDNの記事を参照してください。

例として:

<service 
    name="Microsoft.ServiceModel.Samples.CalculatorService" 
    behaviorConfiguration="CalculatorServiceBehavior"> 
    <!-- This endpoint is exposed at the base address provided by host: 
     http://localhost/servicemodelsamples/service.svc --> 
    <endpoint address="" 
      binding="basicHttpBinding" 
      contract="Microsoft.ServiceModel.Samples.ICalculator" /> 
    <!-- secure endpoint exposed at {base address}/secure: 
     http://localhost/servicemodelsamples/service.svc/secure --> 
    <endpoint address="secure" 
      binding="wsHttpBinding" 
      contract="Microsoft.ServiceModel.Samples.ICalculator" /> 
    ... 
</service> 
+0

私は同じことをしようとしていますが、私は二重のものでどこかを台無しにしています。 – User

+0

クライアントの設定が間違っている可能性があります。 –

+0

そのクライアントの設定も投稿する必要がありますか? – User

関連する問題