title: OperationContext.Current is null after first await when using async/await in WCF service
body: <p>I am using async/await pattern in .NET 4.5 to implement some service methods in WCF.
  Example service:</p>
  
  <p>Contract:</p>
  
  <pre><code>[ServiceContract(Namespace = "http://async.test/")]
  public interface IAsyncTest
  {
      Task DoSomethingAsync();
  }
  </code></pre>
  
  <p>Implementation:</p>
  
  <pre><code>MyAsyncService : IAsyncTest
  {
      public async Task DoSomethingAsync()
      {
          var context = OperationContext.Current; // context is present
  
          await Task.Delay(10);
  
          context = OperationContext.Current; // context is null
      }
  }
  </code></pre>
  
  <p>The problem I am having is that after first <code>await</code> <code>OperationContext.Current</code> returns <code>null</code> and I can't access <code>OperationContext.Current.IncomingMessageHeaders</code>.</p>
  
  <p>In this simple example this is not a problem since I can capture the context before the <code>await</code>. But in the real world case <code>OperationContext.Current</code> is being accessed from deep inside the call stack and I really don't want to change lots of code just to pass the context further.</p>
  
  <p>Is there a way to get operation context after <code>await</code> point without passing it down the stack manually?</p>