title: Why is HttpNotificationChannel.Open throwing ArgumentException() E_INVALIDARG?
body: <p>Here is my code. Everything works fine the first time I run it, i.e. HttpNotificationChannel.Find() returns null. </p>
  
  <p>But the second time I run it, Find() returns the proper thing, however when I get to the Open() call, it throws an exception. Which is really odd, since Open() doesn't take any arguments. </p>
  
  <p>What am I doing wrong? </p>
  
  <pre><code>  public string ChannelName = "MyAppChannel";
    ...
    NotificationChannel = HttpNotificationChannel.Find(ChannelName);
    if (NotificationChannel == null)
    {
      NotificationChannel = new HttpNotificationChannel(ChannelName);
    }
    NotificationChannel.ChannelUriUpdated += new EventHandler(Channel_ChannelUriUpdated);
    NotificationChannel.HttpNotificationReceived += new EventHandler(NotificationChannel_HttpNotificationReceived);
    NotificationChannel.ErrorOccurred += new EventHandler(Channel_ErrorOccurred);
    NotificationChannel.Open();         // &lt;-- Kaboom here, the 2nd time 
  </code></pre>
  
  <p>Here's the full text and stack: </p>
  
  <pre><code>System.ArgumentException: E_INVALIDARG
     at Microsoft.Phone.Notification.SafeNativeMethods.ThrowExceptionFromHResult(Int32 hr, Exception defaultException, NotificationType type)
     at Microsoft.Phone.Notification.HttpNotificationChannel.Open()
     at LiveShare.NotificationManager.Initialize()
     at LiveShare.App..ctor()
     at System.Reflection.RuntimeConstructorInfo.InternalInvoke(RuntimeConstructorInfo rtci, BindingFlags invokeAttr, Binder binder, Object parameters, CultureInfo culture, Boolean isBinderDefault, Assembly caller, Boolean verifyAccess, StackCrawlMark&amp; stackMark)
     at System.Reflection.RuntimeConstructorInfo.InternalInvoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture, StackCrawlMark&amp; stackMark)
     at System.Reflection.ConstructorInfo.Invoke(Object[] parameters)
     at MS.Internal.TypeProxy.&lt;&gt;c__DisplayClass30.b__2a()
     at MS.Internal.TypeProxy.CreateInstance(UInt32 customTypeId)
     at MS.Internal.FrameworkCallbacks.CreateKnownObject(IntPtr nativeRootPeer, UInt32 customTypeId, String initializationString, IntPtr&amp; nativePeer, UInt32 isCreatedByParser)
     at MS.Internal.FrameworkCallbacks.CreateUnknownObject(String assemblyName, String typeName, IntPtr nativeRootPeer, String initializationString, UInt32&amp; customTypeId, UInt32&amp; coreTypeId, UInt32&amp; typeFlags, IntPtr&amp; nativePeer)
  </code></pre>