.NET Framework 4.5でWCFサービスと、それを利用するクライアントアプリケーションを作っています。
WCFサービスの引数や戻り値に使用するカスタムクラスや列挙型で、DataMember属性とかEnumMember属性を付け忘れることがあるのですが、このときにクライアント側で発生する例外のメッセージから原因を特定するのが難しく困っています。
戻り値がカスタムクラスで、そのいずれかのプロパティで使用しているenumのメンバーにEnumMember属性を付け忘れると、次のようなエラーが出ます。

Exceptionの型:System.ServiceModel.CommunicationException
メッセージ:基礎になる接続が閉じられました: 維持される必要があった接続が、サーバーによって切断されました
※実際にはTargetInvocationExceptionが発生しており、そのInnerExceptionに上記のCommunicationExceptionが入っていた。

このメッセージから、データコントラクト周りの属性付け忘れの可能性があることまでは、経験として覚えました。
しかし、どこで何を付け忘れているのかという具体的な原因は、今のところひたすらコードを目視で精査している状況です。
もう少しデバッグをしやすくする手段はないものでしょうか?

例外をToStringした結果を記載しておきます。
System.Reflection.TargetInvocationException: 呼び出しのターゲットが例外をスローしました。 ---> System.ServiceModel.CommunicationException: 基礎になる接続が閉じられました: 維持される必要があった接続が、サーバーによって切断されました ---> System.Net.WebException: 基礎になる接続が閉じられました: 維持される必要があった接続が、サーバーによって切断されました ---> System.IO.IOException: 転送接続からデータを読み取れません: 既存の接続はリモート ホストに強制的に切断されました。。 ---> System.Net.Sockets.SocketException: 既存の接続はリモート ホストに強制的に切断されました。
※以下スタックトレースは省略