Вы не можете. Вы получите FaultException
, только если исключение .NET произошло в коде на стороне сервера и было перехвачено.
HTTP 401 - это «Доступ неавторизованным» - вы получите это исключение еще до того, как достигнете серверного кода -> это всегда будет MessageSecurityException
- никогда FaultException
(и нет способа волшебным образом повернуть либо в FaultException, либо).
Любое исключение, которое происходит до того, как выполнение даже достигает серверного кода (такие вещи, как EndpointNotFoundException
или TimeoutException
), никогда не являются исключениями ошибок.
Все специфичные для WCF исключения происходят из общего базового класса, однако - CommunicationException
. Так что, возможно, вы можете справиться с этим как запасной вариант.