title: WCF Router: one way and request-reply operations
body: <p>In order to prepare my 70-513 exam, I found this questions:</p>
  
  <p>A Windows Communication Foundation (WCF) service implements a contract with one-way and request-reply operations. The service is exposed over a TCP Transport. Clients use a router to communicate with the service. 
  The router is implemented as follows. (Line numbers are include for reference only.)</p>
  
  <pre><code>01 ServiceHost host = new ServiceHost(typeof(RoutingService));
  02 host.AddServiceEndpoint (
  03     typeof(ISimplexDatagramRouter),
  04     new NetTcpBinding(), "net.tcp://localhost/Router"
  05    );
  06 List&lt;ServiceEndpoint&gt; lep = new List&lt;ServiceEndpoint&gt;();
  07 lep.Add (
  08     new ServiceEndpoint (
  09         ContractDescription.GetContract(
  10             typeof(ISimplexDatagramRouter)
  11    ),
  12     new NetTcpBinding(),
  13     new EndpointAddress("net.tcp://localhost:8080/Logger")
  14    )
  15 );
  16 RoutingConfiguration rc = new RoutingConfiguration();
  17 rc.FilterTable.Add(new MatchAllMessageFilter(), lep);
  18 host.Description.Behaviors.Add(new RoutingBehavior(rc));
  </code></pre>
  
  <p>Request-reply operation are failing. You need to ensure that the router can handle one-way and request-reply operations. 
  What should you do?</p>
  
  <ul>
  <li><p><strong>A</strong>. Change line 03 as follows</p>
  
  <blockquote>
    <p>typeof((IRequestReplyRouter)</p>
  </blockquote></li>
  <li><p><strong>B</strong>. Change line 03 as follows</p>
  
  <blockquote>
    <p>typeof((IDuplexSessionRouter)</p>
  </blockquote></li>
  <li><p><strong>C</strong>. Change line 10 as follows</p>
  
  <blockquote>
    <p>typeof((IRequestReplyRouter)</p>
  </blockquote></li>
  <li><p><strong>D</strong>. Change line 10 as follows</p>
  
  <blockquote>
    <p>typeof((IDuplexSessionRouter)</p>
  </blockquote></li>
  </ul>
  
  <p>They says the correct answer is the <strong>B</strong> but I can't understand(and I need to understand :)). I would have answered response <strong>A</strong>, since there is no callback methods, we don't need to have DuplexSessionRouter, no? And then a IRequestReply should be enough?</p>
  
  <p>What am I missing?</p>