エラーと例外

1002 ワード

伝統的なNETプログラミングでは、処理されていない例外は、すぐに例外を放出するプロセスを終了します.しかし、WCFはそれとは大きく異なる.クライアントを表すサービス呼び出しが例外を引き起こし、ホストプロセスが終了しない場合、他のクライアントはサービスにアクセスできます.同じプロセスに管理されている他のサービスも影響を受けません.したがって、未処理の例外がサービスの範囲を離れると、配布器はそれをキャプチャし、戻りメッセージにシーケンス化してクライアントに渡す.戻りメッセージがエージェントに到達すると、エージェントはクライアントで例外を放出します.
クライアントがサービスを呼び出そうとすると、実際には3つのエラータイプに遭遇する可能性があります.1つ目のエラータイプは、ネットワーク障害、アドレスエラー、ホストプロセスが実行されていないなどの通信エラーです.クライアントの通信エラーはCommunicationException異常として表示されます.
クライアントで発生する可能性のある2番目のエラーのタイプは、閉じたエージェントにアクセスしようとすると、ObjectDisposedException例外を引き起こすなど、エージェントとチャネルの状態に関係しています.または、契約がバインドされたセキュリティ・レベルと一致しない場合、エラーが発生します.3つ目のエラー・タイプは、サービス・コールに由来します.このエラーは、サービスが投げ出す例外でも、サービスが他のオブジェクトやリソースを呼び出すときに内部呼び出しで投げ出す例外でもあります.これらの誤りは本章で述べるテーマである.カプセル化とデカップリングの目的で、デフォルトでは、すべてのサービス側から放出される例外は、常にFaultExceptionタイプでクライアントに到達します.
 public class FaultException : CommunicationException
{...}

クライアントとサービスをデカップリングするには、すべてのサービスが異常に平等である必要があります.クライアントは、サービス側で発生するコンテンツが少ないほど、両者の関係のデカップリングが徹底していることを知っている.