問題タブ [ierrorhandler]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c# - セルフホスティング wcf サービスで Global errorhandler を動作させることができません
こんにちは、私は Ierrorhandler を何時間も動作させようとしましたが、かなり行き詰っています :) このガイドから最大限の結果が得られました
http://www.remondo.net/wcf-global-exception-handling-attribute-and-ierrorhandler/#comment-10385
しかし、私はそれを自分の操作/機能で動作させることができません
Program.cs
app.config
IService.cs
Serverfunctions.cs
ExceptionHandler.cs
わかりましたので、console.writeLineを中に入れたら
public class GlobalExceptionHandlerBehaviourAttribute : 属性、IServiceBehavior 関数 プログラムを起動すると実行されることがわかります。しかし、関数を使用して例外をスローし、それを IErrorhandler でキャッチするガイドの例を取得できません。
他の関数内でいくつかの例外を試しましたが、IErrorhandler で何も起こりません。
しかし、Wcftestclientにサービスを追加し、IService.csでデバッグを停止して[OperationContract]を削除してから、もう一度開始して更新せずに関数を実行しようとすると、これまでに発見した例外が 1 つ発生します。 IErrorhandler によってキャッチされる
ここで私の問題は、関数内で例外をキャッチできないのはなぜですか? 回答ありがとうございます。c(:
wcf - WCF REST の ServiceBehavior
WCF サービスの ServiceBehavior の構成に問題があります。
いくつかの背景。基本的に、IIS で実行することになっている REST サービス WCF を開発しています。サービスによってスローされた例外をログに記録し (log4net を使用しています)、例外の種類に応じて HTTP ステータス コードを返す必要があります。サービスの実装には、WCF 関連のものについて最低限の知識を持たせたいので、サービスのどこでも例外を FaultException に変換したくありません。そのため、独自の IErrorHandler をサービス ホストに追加することが最善の方法であることがわかりました。
しかし、私の問題は、何を試しても、Web.config でカスタム ServiceBehavior の構成を正しく取得できないように見えることです。関連するコードは次のとおりです。
ウェブ構成。
エラー拡張要素。
ErrorServiceBehavior。
ExceptionModule が IErrorHandler を実装する場所。
wcf - WCF の戻り値に例外情報を含める
私はIErrorHandler一連の WCF サービスを実装しています。カスタム動作を使用して、構成ファイルを介してこのエラー ハンドラーを使用するように WCF サービスを構成します。
すべてのサービスのすべてのメソッドは、共通の基本クラスから派生した値を返します。
私がやりたいことは、エラー ハンドラが呼び出された場合に戻り値にエラーに関する情報を含めることです。
これをエレガントに行う方法についてのアイデアは大歓迎です。
wcf - IErrorHandler インターフェイスがわかりにくい
IErrorHandler と IServiceBehavior を実装するクラスを作成しました。この動作を ServiceHost に追加して実行します。
私が IErrorHandler について学ぼうとした理由は、コールバック チャネルとやり取りするすべてのサービス コードを try catch ステートメントでラップする必要があり、例外をキャッチするグローバルな方法があるかどうか疑問に思ったからです。
ここ StackOverflow で読んだことから、それがまさに私が欲しいものであることがわかりました。
しかし、実行中、それは私を大いに混乱させます。次のことを行うコントラクトメソッドがある場合...
クライアントが私のサーバーにいて、彼が地球の表面から落ちてチャネルに障害が発生した場合、サーバーがチャネルに障害があることに気付くまでにしばらく時間がかかるようです. ICommunicationObject のイベントにサブスクライブしていても、サーバーがチャネルに障害があることを認識するまでに時間がかかるようです。たとえば、誰かがメッセージを送信していて、誰かが切断し、同時にメッセージが伝播されているとします。
さて、基本的に定期的にクライアントに ping を送信して、クライアントがまだ存在するかどうかを確認する別の方法があるので、クライアントをuserChannel辞書から削除できます。
ここで IErrorHandler はどのくらい正確に私を助けてくれるのでしょうか? エラーをキャッチしたとしても、サービスがクラッシュするのを正確に助けているわけではないようです。私のサービスはクライアントに非常に速いペースで ping を送信できないため、例外をスローした前のメッセージの直後に (私はこれをテストしていました)、メッセージが届くことがあります。最初のものは処理されたように見えましたが、2 番目のものはキャッチされなかった別の例外をスローし、サーバーが障害のあるチャネルと通信しようとしたため、サービスがクラッシュしました。現在、私のサービスは障害のあるチャネルをクリーンアップしますが、定期的にクリーンアップします。
IErrorHandler を実装することで、すべてのメソッドを try{}catch{} ブロックでラップする必要がなくなることを期待していましたが、障害のあるチャネルと通信しているかどうかを確認するために、まだ必要なようです。
あるいは、IErrorHandler を不適切に使用して、本来すべきではないことを行うべきだと考えているだけかもしれません。サービスにそれを実装させ、それ自体を IServiceBehavior として Servicehost に挿入する必要がありますか? そして、HandleError() メソッドで、クライアントのリストからチャネルを削除しますか? サービス クラスに WCF 配管要素を配置しているため、これはややこしいように思えますが、例外コード自体にコールバックのリストからチャネルを削除させるには、これしか考えられません。
私はそれが初めてなので、たくさんの読書をしようとしていますが、WCF のエラー処理の世界は気が遠くなるような気がします。
Faulted イベントをサブスクライブしてサービスで呼び出されないようにチャネルを削除しようとしても、十分な速度で動作せず、IErrorHandler を使用してもサーバーが回復できないように見える例外がスローされます。
たとえば、ユーザーが最初に接続したときに、イベントをサブスクライブします。
すべてのメソッドにアクセスして、チャネルが閉じているかエラーが発生しているかを確認し、すべてを try/catch ブロックでラップして参照を削除し、クライアントに通知する必要がありますか?
c# - トレースActivityIdがWCFエラーハンドラでリセットされます
IErrorHandlerを実装したWCFサービスがあります。そのHandleErrorメソッドで、TraceSourceを使用して例外をログに記録しています。
ただし、このメソッドを入力すると、Trace.CorrelationManager.ActivityIdが、サービスメソッドの開始時に設定したものから変更されます。そのため、ランダムなアクティビティIDを含むログエントリを取得します。これにより、アクティビティトレースが台無しになります。
WCFはこれを行っていますか?なぜ?
wcf - 条件付きでxmlまたはjsonを返すWCFカスタムエラーハンドラー?
open311プロトコルでは、次の形式のエンドポイントをサポートする必要があります。
- domain / requests.xml
- domain / requests.json
最初のエンドポイントはxmlリクエストを受け入れ、2番目のエンドポイントはjsonリクエストを受け入れます。
プロトコルはさらに、エラーをリクエスト形式(xmlまたはjson)で返す必要があることを指定します。
ServiceBehaviorErrorHandlerを実装するときに、ProvideFaultメソッド内でリクエスト形式(xmlまたはjson)を判別することが不可能であることがわかりました。すべての例は、jsonまたはxmlを返します。
同じ形式でエラーメッセージを返すことができるように、リクエスト形式をどのように判断できますか?私の実装:
c# - WCF 例外 IErrorHandler が呼び出されない
IErrorHandlerインターフェイスを機能させるのに問題があるようです。私のコードは
私のweb.configは次のとおりです。
私のWCFインターフェースは次のとおりです。
私の質問は、WCF の IErrorHandler にあります。WCF サービス呼び出し中に例外が発生した場合HandlerError()、C# Windows アプリケーションの UnhandledException クラスのように関数が最初に呼び出され、サービスが正しくクラッシュするはずです。上記のコードでは、サービス呼び出し中に例外がスローされますがHandlerError、例外がスローされる前に関数が呼び出されませんか? 私の目標はエラーをログに記録することであり、WCF サービスは未処理の例外をスローしてクラッシュする可能性があります。デバッグ中にブレークポイントが HandleError 関数を訪問することを期待していましたが、その関数が呼び出されず、例外が表示されただけですか?
php - 抑制された PHP 警告をログに記録しない
この警告が抑制されたか、set_error_handler() 関数を使用していないかを確認する方法はありますか? @somethingwrong() と somethingwrong() のコードは 2 です。しかし、すべての警告をログに記録したくありません。たとえば、有効な入力データをテストする方法がないため、gzuncompress() などの一部の関数はこの方法で処理する必要があります。
c# - app.config の EndpointBehaviour に ErrorHandler を追加する方法
そのため、Spring.net プロキシ オブジェクトを使用していくつかの ServiceHost を立ち上げましたが、すべて問題ありません。xml にカスタム エラー ハンドラを追加したいと考えています。必要に応じて春に立てることができますが、これを行う方法がわかりません。私の app.config は次のとおりです。
コードでそれを行う方法を見つけました:
誰でも私を助けることができますか?
json - Lua でサードパーティ ライブラリからエラー メッセージをキャプチャする方法は?
JSON を解析するためにLuaJSONを採用しました。parse 呼び出しは次のようになります。
しかし、 のフォーマットが不適切な場合、json_strはLuaJSON 内で停止し、 file.luadecode()の実行を中断します。代わりに制御フローを関数に戻して、カスタム エラー通知を提供できるようにします。
LuaJSON API を参照しましたが、コールバックのようなエラー処理はありません。file.lua 内からLuaJSON内で発生したエラーを処理できるようにする Lua メカニズムはありますか?