Nie obsłużono wyjątku .NET Remoting po stronie klienta

Sprawdziłem resztę pytań zdalnych, a ten konkretny przypadek nie został rozwiązany.

Mam konfigurację serwera / klienta .NET. Po stronie serwera mam obiekt z metodą, która może rzucić wyjątek i klient, który spróbuje wywołać tę metodę.

Serwer:

public bool MyEquals(Guid myGuid, string a, string b)
{
    if (CheckAuthentication(myGuid))
    {
        logger.Debug("Request for \"" + a + "\".Equals(\"" + b + "\")");
        return a.Equals(b);
    }
    else
    {
        throw new AuthenticationException(UserRegistryService.USER_NOT_REGISTERED_EXCEPTION_TEXT);
    }
}

Klient:

try
{
    bool result = RemotedObject.MyEquals(myGuid, "cat", "dog");
}
catch (Services.Exceptions.AuthenticationException e)
{
    Console.WriteLine("You do not have permission to execute that action");
}

Kiedy wywołuję MyEquals z Guid, który powoduje, że CheckAuthentication zwraca false, .NET próbuje rzucić wyjątek i mówi, że AuthenticationException nie został obsłużony. Dzieje się tak po stronie serwera. Wyjątek nigdy nie jest przenoszony na stronę klienta i nie mogę zrozumieć dlaczego. Wszystkie pytania, na które patrzyłem, dotyczą kwestii obsługi wyjątku po stronie klienta, ale nie jest to wyjątek niestandardowy, ale typ podstawowy. W moim przypadku nie mogę nawet uzyskać żadnego wyjątku, aby przekroczyć granicę zdalną dla klienta. Oto kopia AuthenticationException. Znajduje się w bibliotece współdzielonej między serwerem a klientem.

[Serializable]
public class AuthenticationException : ApplicationException, ISerializable
{

    public AuthenticationException(string message)
        : base(message)
    {
    }

    public AuthenticationException(SerializationInfo info, StreamingContext context)
        : base(info, context)
    {
    }

    #region ISerializable Members

    void ISerializable.GetObjectData(SerializationInfo info, StreamingContext context)
    {
        base.GetObjectData(info, context);
    }

    #endregion
}

questionAnswers(3)

yourAnswerToTheQuestion