2012-12-10 9 views
5

ServiceBaseを継承するMyServiceBaseクラスがあります。 MyServiceの中には、私のWCFサービス用のServiceHostがありますが、IsOneWay = trueプロパティを持つメソッドが1つしかありません。私はそれを初期化するために、このコードを使用:ServiceHostのエラーの原因を調べる方法

host = new ServiceHost(typeof(MyService)); 
host.Opened += new EventHandler(host_Opened); 
host.Closed += new EventHandler(host_Closed); 
host.Faulted += new EventHandler(host_Faulted); 
host.UnknownMessageReceived += new EventHandler<UnknownMessageReceivedEventArgs>(host_UnknownMessageReceived); 
host.Open(); 

時々、ホストに障害が発生したイベントを発生させますが、* host_Faulted *メソッド内のEventArgsは常に空になっているので、私はそれの理由を見つけることができません。 助けてください。 ありがとうございました。

+0

私はpseudovariables(http://msdn.microsoft.com/en-us/library/ms164891.aspx)を使用しようとしましたが、ローカル変数ウィンドウで$ exception変数が表示されませんでした – Alekstim

答えて

2

このリンクは、WCF障害ハンドリングとデバッグのより良い方法を便利証明するかもしれません:

How do I prevent a WCF service from enter a faulted state?

だからではなく、あなたの特定の質問に答えるには、私はあなたの条件を達成するためのより良い方法を推奨しています。

+0

ありがとうございました。このリンクは私を多く助けました – Alekstim

+0

問題ありません。喜んで私の提案はあなたのために働いた。 – c0D3l0g1c

+3

これは参考になりましたが、実際の質問には答えませんでした。サービスの障害を引き起こした例外スタックはどのようにして得られますか? – David

0

今日、この問題が発生しました。 WCFトレースを有効にすることで、それは助けになりますが、理由を教えてくれませんでした。多くのデバッグ作業の後、私は本当の理由が見つかりました:WCFサービスを消費するクライアントがクラッシュしました。クライアントはラップされたWindowsサービスであり、ステータスはまだ「実行中」です。

私の提案は、クライアントアプリケーションのすべてのコードブロックを試してみることです。

関連する問題