title: Exception thrown when using Glimpse and Postal
body: <p>I'm just starting to use Glimpse with my MVC5 project and have run into an issue when I use Postal to send an email without disabling Glimpse. I've been able to narrow it down to an issue with both packages - it doesn't occur if the Glimpse cookie has not been turned on.</p>
  
  <p>In Fiddler, I checked the difference between the two. When it threw the exception, the cookie was </p>
  
  <pre><code>glimpsePolicy=On
  </code></pre>
  
  <p>when it worked (Glimpse was off) there were two cookies</p>
  
  <pre><code>glimpseId=FBar; glimpsePolicy=
  </code></pre>
  
  <p>The exception I get is</p>
  
  <pre><code>System.ArgumentNullException: Value cannot be null.
  Parameter name: controllerContext
     at System.Web.Mvc.ChildActionValueProviderFactory.GetValueProvider(ControllerContext controllerContext)
     at Castle.Proxies.Invocations.ValueProviderFactory_GetValueProvider.InvokeMethodOnTarget()
     at Castle.DynamicProxy.AbstractInvocation.Proceed()
     at Glimpse.Core.Extensibility.ExecutionTimer.Time(Action action)
     at Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context)
     at Castle.DynamicProxy.AbstractInvocation.Proceed()
     at Castle.Proxies.ValueProviderFactoryProxy.GetValueProvider(ControllerContext controllerContext)
     at System.Web.Mvc.ValueProviderFactoryCollection.GetValueProvider(ControllerContext controllerContext)
     at System.Web.Mvc.ControllerBase.get_ValueProvider()
     at Glimpse.Mvc.Message.ActionMessageExtension.AsActionMessage[T](T message, ControllerBase controller)
     at Glimpse.Mvc.AlternateType.ViewEngine.FindViews.PostImplementation(IAlternateMethodContext context, TimerResult timerResult)
     at Glimpse.Core.Extensibility.AlternateMethod.NewImplementation(IAlternateMethodContext context)
     at Castle.DynamicProxy.AbstractInvocation.Proceed()
     at Castle.Proxies.IViewEngineProxy.FindView(ControllerContext controllerContext, String viewName, String masterName, Boolean useCache)
     at System.Web.Mvc.ViewEngineCollection.&lt;&gt;c__DisplayClass6.&lt;FindView&gt;b__4(IViewEngine e)
     at System.Web.Mvc.ViewEngineCollection.Find(Func`2 lookup, Boolean trackSearchedPaths)
     at System.Web.Mvc.ViewEngineCollection.Find(Func`2 cacheLocator, Func`2 locator)
     at Postal.EmailViewRenderer.Render(Email email, String viewName)
     at Postal.EmailService.Send(Email email)
     at System.Dynamic.UpdateDelegates.UpdateAndExecuteVoid1[T0](CallSite site, T0 arg0)
     at System.Web.Mvc.ActionMethodDispatcher.&lt;&gt;c__DisplayClass1.&lt;WrapVoidAction&gt;b__0(ControllerBase controller, Object[] parameters)
     at System.Web.Mvc.ReflectedActionDescriptor.Execute(ControllerContext controllerContext, IDictionary`2 parameters)
     at System.Web.Mvc.ControllerActionInvoker.InvokeActionMethod(ControllerContext controllerContext, ActionDescriptor actionDescriptor, IDictionary`2 parameters)
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;BeginInvokeSynchronousActionMethod&gt;b__36(IAsyncResult asyncResult, ActionInvocation innerInvokeState)
     at System.Web.Mvc.Async.AsyncResultWrapper.WrappedAsyncResult`2.CallEndDelegate(IAsyncResult asyncResult)
     at Castle.Proxies.Invocations.AsyncControllerActionInvoker_EndInvokeActionMethod.InvokeMethodOnTarget()
     at Castle.DynamicProxy.AbstractInvocation.Proceed()
     at Glimpse.Mvc.AlternateType.AsyncActionInvoker.EndInvokeActionMethod.NewImplementation(IAlternateMethodContext context)
     at Castle.DynamicProxy.AbstractInvocation.Proceed()
     at Castle.Proxies.AsyncControllerActionInvokerProxy.EndInvokeActionMethod(IAsyncResult asyncResult)
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.&lt;InvokeActionMethodFilterAsynchronouslyRecursive&gt;b__3c()
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.AsyncInvocationWithFilters.&lt;&gt;c__DisplayClass45.&lt;InvokeActionMethodFilterAsynchronouslyRecursive&gt;b__3e()
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;&gt;c__DisplayClass30.&lt;BeginInvokeActionMethodWithFilters&gt;b__2f(IAsyncResult asyncResult)
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;&gt;c__DisplayClass1e.&lt;&gt;c__DisplayClass28.&lt;BeginInvokeAction&gt;b__19()
     at System.Web.Mvc.Async.AsyncControllerActionInvoker.&lt;&gt;c__DisplayClass1e.&lt;BeginInvokeAction&gt;b__1b(IAsyncResult asyncResult)
  </code></pre>
  
  <p>I created a quick action to test it. The controller code is:</p>
  
  <pre><code>public void TestEmailExt()
      {
      var confirmationToken = "ConfirmationToken";
      var Phone1 = "**********";
      dynamic email = new Email("RegEmail");
      email.To = "**@gmail.com";
      email.UserName = "UserName";
      email.ConfirmationToken = confirmationToken;
      email.Phone = Extensions.Right(Phone1, 4);
      if (email.To.Contains("@mydomain"))
          email.From = INTERNAL_EMAIL_FROM;
      else
          email.From = EXTERNAL_EMAIL_FROM;
      email.Send();
      }
  </code></pre>