以下のコードを使用して、.net クラス ライブラリから ESB 管理ポータルにダミーの障害メッセージを送信しようとしています。ESB ExceptionHandling Service によって提供される WCF サービスを既に使用し、そのクライアントを作成しました。
ExceptionHandlingClient clientESB = new ExceptionHandlingClient();
FaultMessage faultMsg = new FaultMessage();
faultMsg.Header = new FaultMessageHeader();
faultMsg.Header.Application = "Exception Handling Service Test";
faultMsg.Header.Description = "Fault Message Header";
faultMsg.Header.ErrorType = "Error Type";
faultMsg.Header.FaultSeverity = 1;
faultMsg.Header.FaultCode = "Fault Code";
faultMsg.Header.FailureCategory = "Failure Category";
faultMsg.Header.FaultDescription = "Fault Description";
faultMsg.Header.FaultGenerator = "Fault Generator";
faultMsg.Header.Scope = "Fault Message Scopte";
faultMsg.Header.ServiceInstanceID = System.Guid.NewGuid().ToString();
faultMsg.Header.ServiceName = "Exception Service";
faultMsg.Header.MachineName = System.Environment.MachineName;
faultMsg.Header.DateTime = System.DateTime.Now.ToString();
faultMsg.Header.ControlBit = "1";
faultMsg.Header.MessageID = System.Guid.NewGuid().ToString();
faultMsg.Header.ActivityIdentity = "Activity Identity ";
faultMsg.Header.NACK = false;
//Use the 'client' variable to call operations on the service.
clientESB.Open();
clientESB.SubmitFault(faultMsg);
上記のコードが実行されると、FaultMessage オブジェクトのプロパティが正常に設定されます。このリクエストが ALL.Exceptions 送信ポートに到達すると、以下のエラー メッセージが表示されて失敗します。
送信パイプラインの実行に失敗しました: "Microsoft.Practices.ESB.ExceptionHandling.Pipelines.ESBFaultProcessor, Microsoft.Practices.ESB.ExceptionHandling.Pipelines, Version=2.1.0.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" ソース: "ESB BAM Tracker" 送信ポート: "ALL.Exceptions" URI: "SQL://(local)/EsbExceptionDb/" 理由: 予期しないファイルの終わりが発生しました。次の要素は閉じられていません: ns0:FaultMessage。行 20、位置 12。