Openning Async WCF Service with wrong Username-Password hangs
===

I have a WCF service that implements the 'Custom-Username-Password-Validator'.

The service itself checks the username+password against a local file,

and if there is no match - it throws a *FaultException* with a message.

.


When I use the service synchronously it works fine.

When I go to work with it **ASYNC**, I have a problem.

If I pass the **wrong** 'Username+Password' credentials - and open the client,

instead of returning immediatly from the service going into my 'Channel_Faulted()' method,

the client thread simply waits until the *Timeout* triggers,

and then I get a 'TimeoutException'.

    try
    {
        client = new MyServiceClient("WSDualHttpBinding_IMyervice");
        client.ClientCredentials.UserName.UserName = "username";
        client.ClientCredentials.UserName.Password = "bad password";
        client.ChannelFactory.Faulted += new EventHandler(ChannelFactory_Faulted);
        client.Open();   // This hangs for 01:00:00 minute

        // Doesn't reach here
        client.DoSomethingCompleted += new EventHandler<DoSomethingEventArgs(client_DoSomethingCompleted);
        client.DoSomethingAsync(param);
    }
    catch (Exception ex)
    {
        // Enters here with a 'TimeoutException' exception
    }

why does the client not trigger the 'Faulted' method I have ?

Why does it wait for a response from the service even though the service through a 'FaultException' during the 'Validate' method of the 'CustomUserNameValidator' ?