Question: I was wondering how I would go about setting up the virtual hosts so that I just have to enter www.mydomain.com:9090 to go to phpmyadmin. This is how I have my vhosts set up right now in httpd.conf:

```
<VirtualHost *:80>
    DocumentRoot /var/www/html/
    ServerName mydomain.com
    ServerAlias www.mydomain.com
</VirtualHost>

<VirtualHost *:9090>
    DocumentRoot /usr/share/phpMyAdmin/
    ServerName mydomain.com
    ServerAlias www.mydomain.com
</VirtualHost>

```

This does not seem to be working.

Answer: 
It might be that multiple different delegate functions are wired to the event. Hopefully the following little example will make it clearer as to what I mean.

```
// Simple class to host the Event
class Test
{
  public event EventHandler MyEvent;
}

// Two different methods which will be wired to the Event
static void MyEventHandler1(object sender, EventArgs e)
{
  throw new NotImplementedException();
}

static void MyEventHandler2(object sender, EventArgs e)
{
  throw new NotImplementedException();
}

[STAThread]
static void Main(string[] args)
{
  Test t = new Test();
  t.MyEvent += new EventHandler(MyEventHandler1);
  t.MyEvent += new EventHandler(MyEventHandler2); 

  // Break here before removing the event handler and inspect t.MyEvent

  t.MyEvent -= new EventHandler(MyEventHandler1);      
  t.MyEvent -= new EventHandler(MyEventHandler1);  // Note this is again MyEventHandler1    
}

```

If you break before the removal of the event handler you can view the invocation list in the debugger. See below, there are 2 handlers, one for MyEventHandler1 and another for the method MyEventHandler2.

![enter image description here](https://i.stack.imgur.com/82wNM.png)

Now after removing the MyEventHandler1 twice, MyEventHandler2 is still registered, because there is only one delegate left it looks a little different, it is no longer showing in the list, but until the delegate for MyEventHandler2 is removed it will still be referenced by the event.

![enter image description here](https://i.stack.imgur.com/kW6BY.png)
Maybe try:

```
 public void Dispose()
    {
      ClientEntityCache.EntityCacheCleared -= ClientEntityCache_CacheCleared;
      // Same thing for 10 other events
    }

```

You are creating a new event handler and removing it from the `delegate` - which effectively does nothing.

Remove the event subscription by removing reference to the ***original*** subscribing event method.

You could always just set your `eventhandler = delegate {};` In my opinion, that would be better than `null`.