問題タブ [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.

0 投票する
2 に答える
471 参照

json - WCF json エラー ハンドラーで例外が発生する

エンドポイントで 2 つの動作を構成しています。

  1. 1 つは json シリアライゼーション用で、基本的にはここの例と非常によく似ています。そこで重要なのは次のことです。
  1. もう 1 つはエラー処理用です。そのため、例外がスローされると、json 形式のメッセージがクライアントに送信されます。コードはhereから取得されます(「上記の情報に基づく完全なソリューションは次のとおりです:」で始まる答え)。

動作 1 のみを使用すると、すべて正常に動作します。2 番目の動作を追加すると、次の例外が発生します。

{"ExceptionType":"System.InvalidOperationException","Message":"受信メッセージに予期しないメッセージ形式 'Raw' があります。操作で予期されるメッセージ形式は 'Xml'、'Json' です。これは、WebContentTypeMapper が原因である可能性がありますバインディングで構成されていません。詳細については、WebContentTypeMapper のドキュメントを参照してください。"}

私のweb.configは次のようになります。

何か案は?

0 投票する
0 に答える
101 参照

wcf - WCF IErrorHandle 非同期の問題

私の知る限り、HandleError はサービスに対して非同期で実行されるはずですが、次のコードは、サービスと同じスレッドで実行されることを証明しています。

0 投票する
2 に答える
950 参照

c# - オブジェクトをWCFのIErrorHandlerに挿入する方法は?

私はこの状況を持っています:私はWCFサービスを持っています。MyErrorHandler実装されたインターフェイスを使用して、すべての例外を処理していますIErrorHandler。作業コード全体を以下に示します。

やりたいことはあるが、方法がわからない: オブジェクト (ILogger など) をMyErrorHandlerクラスに挿入したい。これは基本的に、ここにオブジェクトを挿入する必要があることを意味します: [GlobalErrorHandlerBehaviour(typeof(MyErrorHandler))]. この問題を解決するのを手伝ってくれませんか?

ところで。DI を使用して何かを注入したいのですが、ロガーでメソッドIErrorHandlerを使用したくありません。private static readonly

0 投票する
1 に答える
111 参照

c# - IIS でホストしているときに依存関係を IErrorHandler に注入する

私はちょうどこの素晴らしい答えを読んだところです。WCF サービスに依存関係を注入する方法です。解決策はかなりきれいですが、問題があります。

この回答の解決策はセルフホスティング (コンソール アプリケーション) を使用するため、独自の実装ServiceHostと実行が可能ErrorHandlerです。

私の問題は、ASP.NET Web アプリケーション ホストでこれを行うにはどうすればよいですか? IIS 経由でホストしているときに、Service に何かを挿入しようとしています。どんな助けでも素晴らしいでしょう!

0 投票する
3 に答える
1268 参照

c# - HTTP ステータス コードが 401 Unauthorized の場合、IErrorHandler が間違ったメッセージ本文を返す

安静な WCF サービスのコンストラクター内でスローされた承認例外を処理するために、IErrorHandler を実装しました。一般的な例外がキャッチされると、カスタム タイプが期待どおりに返されますが、ContentType ヘッダーが正しくありません。

ただし、エラー ハンドラが 401 Unauthorized http ステータス コードを返そうとすると、メッセージ本文はデフォルトのタイプに上書きされますが、ContentType ヘッダーは本来あるべきものです。

明らかにここで何かが間違っていますが、私には何がわかりません。

IErrorHandler を実装して、正しいヘッダーを持つ json でカスタム型を返すにはどうすればよいですか?

BaseDataResponseContract オブジェクト:

これは私が返したいオブジェクトです。アプリケーション内の他のすべてのオブジェクトは、このオブジェクトから継承します。例外がスローされたとき、私たちが本当に気にかけているのは、http ステータス コードとエラー メッセージだけです。

IErrorHandler の実装 (簡潔にするためにログは示していません):

IServiceBehavior の実装:

Web.Config:

最後に、WebFaultException を使用すると同様の動作が見られます。私の考えでは、これはいくつかの深く埋もれた .Net シェナニガンの結果です。処理されない可能性のある他の例外をキャッチできるように、IErrorHandler を実装することを選択しています。

参照:

https://msdn.microsoft.com/en-us/library/system.servicemodel.dispatcher.ierrorhandler(v=vs.100).aspx

http://www.brainthud.com/cards/5218/25441/which-four-behavior-interfaces-exist-for-interacting-with-a-service-or-client-description-what-methods-do-they-実装と

その他の例:

IErrorHandler が WCF でエラーを処理していないようです。何かアイデアはありますか?

カスタムWCFエラーハンドラーがOK以外のhttpコードでJSON応答を返すようにする方法は?

HttpClient リクエストの Content-Type ヘッダーをどのように設定しますか?

0 投票する
0 に答える
107 参照

c# - WCF: IErrorHandler 実装が指定された一般的なエラーを提供していない

次のようProvideFaultにインターフェイスのメソッドを実装しました。IErrorHandler

次に、この実装を、呼び出さChannelDispatcherBaseれたの別の実装のすべてに追加します。私のサービス実装はこの属性で装飾されており、次のようにもなっています。IServiceBehaviorGlobalErrorBehaviorAttributeFaultContractAttribute

ただし、サービス実装内のメソッドのテストは常に失敗し、受け取ったエラーは型ではなく、次のようなものであると不平を言ってFaultException<ResponseModel>FaultExceptionます。

クライアント側FaultExceptionではなく受信しているのはなぜですか?FaultException<ResponseModel>