問題タブ [faultexception]
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.
silverlight - Silverlightクライアントはfaultexceptionを理解していません
Silverlightクライアントコードで正常にキャッチしようとしていない例外をスローするWCFサービスがあります。デバッグの目的で宣言されていない障害を使用しています。これが私のサービス方法です。
今、私のSilverlightクライアントビューモデルでは、サービスのコールバックメソッドで、次のように処理しようとしています。
この行else if (e.Error is FaultException)
では、まだSystem.Net.WebExceptionが発生します{リモートサーバーがエラーを返しました:NotFound。}
これらは構成エントリです
これはサービスクラス宣言です
このサービスは、同じSilverlightソリューション内の別のプロジェクトにあります。Silverlightクライアントがスローしている障害例外を取得できないのはなぜですか?
御時間ありがとうございます...
wcf - WCFFaultContractがNamedPipeで失敗する
WCFと名前付きパイプを使用する単純なIPCメカニズムがあります。私の目標は、ロギングの目的で例外の詳細(スタックトレースを含む)をクライアントに伝達することです(残りのアプリケーションロギングはクライアントにあります)。
次のコードを使用すると、クライアントでFaultException <Exception>をキャッチし、例外の詳細を確認できます。
契約:
実装:
クライアント:
これは正常に機能し、コンソールにメッセージが印刷されます。ただし、基本のExceptionクラスの代わりに独自の派生例外を使用したい場合は、失敗します。
カスタム例外:
IService.DoSomethingのFaultContractをに変更します
Serviceのthrow句を次のように変更します
クライアントのcatch句を次のように変更します
これを実行すると、CommunicationExceptionがクライアントで次のエラーでキャッチされます: System.ServiceModel.CommunicationException:パイプからの読み取り中にエラーが発生しました:パイプは終了しました。(109、0x6d)。
MyExceptionクラスは、クライアントとサーバーの両方で使用できる共有ライブラリにあります。
この質問はこの質問と非常に似ていますが、それは私を助けませんでした。
wcf - 非同期WCF呼び出しからFaultExceptionsをキャッチする方法は?
FaultException をスローできる wcf サービスを呼び出したいのですが、それを非同期で行いたいと考えています。すべてが問題なければ例外は返されませんが、サービスが FaultException の 1 つをスローすると、クライアントで CommunicationObjectFaultedException が発生し、そのプロパティのいずれにも元の FaultException が含まれません。
これについてこれまでに学んだことから、情報は別の場所に保存されているということです。正確にどこにあるのか誰か教えてください。
たとえば、次の 2 つはユーザーの登録を処理します。
wcf - Wcf と ExceptionDetail の問題
次のような独自のクラスを作成しました。
次に、私の wcf サービス インターフェイスは次のようになります。
これで、すべてが開発環境で期待どおりに機能します-私が上げたときFaultException
:
クライアント側で問題なく引っ掛かります。
ツールを使用してサービスをテストするために移動すると、問題が発生しwcftestclient.exe
ます。このエラーが発生しています:
サービスの追加に失敗しました。サービス メタデータにアクセスできない場合があります。サービスが実行中で、メタデータを公開していることを確認してください。 エラー: http://localhost:33620/MyService.svcからメタデータを取得できませんこれがアクセス権のある Windows (R) Communication Foundation サービスである場合は、指定されたアドレスでのメタデータ公開が有効になっていることを確認してください。メタデータの公開を有効にする方法については、http: //go.microsoft.com/fwlink/ ?LinkId=65455.WS-Metadata Exchange Error URI: http://localhost:33620/MyService.svc メタデータに含まれる MSDN ドキュメントを参照して ください。解決できない参照: ' http://localhost:33620/MyService.svc '。に接続できませんでした http://localhost:33620/MyService.svc。TCP エラー コード 10061: ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:33620。リモート サーバーに接続できません ターゲット マシンがアクティブに拒否したため、接続できませんでした 127.0.0.1:33620
[FaultContract(typeof(MyOperationFault))]
サービスのメソッドからをコメントアウトするとすぐに、wcftestclient
問題なく動作し始めます。これに取り組む方法は?
wcf - WCF:DataContractクラスのSOAP障害または通常の例外
私のサービスのOperationContractの主なパラメーターは、Preapprovalと呼ばれるクラスです。Preapprovalクラスには、DataMember属性のパブリックゲッター/セッターがいくつかあります。セッターへの入力を検証するコードがあります。たとえば、パラメーターが空白であるか、ドメインの適切な範囲外である場合、ArgumentExceptionをスローします。
入力が無効な場合、私は通常、ここでArgumentExceptionをスローします。これはWCFの状況であるため、ここでArgumentExceptionではなく事前定義されたFaultExceptionをスローする必要がありますか?他の場所では、一般的な例外をキャッチして、FaultExceptionsとして再スローする可能性があることを理解していますが、このアクティビティは、WCF配管によって自動的に実行される一部の作業で、スタックの上位で発生します。
たとえば、呼び出し元が私のサービスを呼び出すと、シリアライザーはSOAPを逆シリアル化し、オブジェクトのセッターを呼び出そうとし、実際に操作が呼び出される前にArgumentExceptionがスローされます。したがって、DataContractクラスで、FaultExceptionsをすぐにスローするのは良い設計手法ですか?カスタムハンドラーをチャネルディスパッチャーに接続したくありません。
単純にFaultExceptionsを直接スローできることは理解していますが、そのようなことをサービスに限定したいと思います。避けられない場合は、サポートクラスでもできますが、System.ServiceModelなどとあまり密接に結びついていない典型的なコードをできるだけ書きたいと思います。
ありがとう!
c# - クライアントでwcfタイムアウトを引き起こすカスタム障害例外
カスタム障害例外を作成する方法(Exceptionクラスを作成してFaultContractで参照する)についても同じ例に従いましたが、サーバーから例外をスローしようとするたびに、クライアントと接続が最も近いです。奇妙なことに、デフォルトのFaultExceptionクラスを使用してサーバーからエラーをスローすると、クライアントはそれを正しく受信します。
ここにスニペットがあります:
次のようにサーバーを初期化します。
カスタム例外を使用した場合にのみ接続タイムアウトが発生する理由はありますか?
どうもありがとう。
c# - Visual Studio Debugger: スローされる FaultExceptions をスキップする
クライアントがローカルでホストしているWCFサーバーを呼び出しています。現在、クライアントをデバッグしているため、サーバーで意図的にFaultExceptionをスローして、クライアントがそれをどのように処理するかを確認しています。
厄介な部分は、デバッガーが FaultException をスローする行で一時停止することです。そうしないようにするにはどうすればよいですか?Visual Studio のオプション (デバッグ) を調べましたが、このオプションに似たものは何もありません。
wcf - FaultException とカスタム例外 WCF
カスタム例外を FaultException として送信する方法について質問があります。ArgumentException のようなシステム例外を使用すると機能しますが、カスタム例外「TestException」に変更すると失敗します。サービス参照を追加しようとしても、その構成を取得できません。
作品:
動作しません:
私の「TestException」は次のようになります。
カスタム オブジェクトに DataContract を追加する必要があると思いますが、ArgumentException が機能するため、そのままでは機能しない理由がわかりません。誰かが私を啓発できますか?
手伝ってくれてありがとう :)
wcf - WCF - 無効なサービスを呼び出していますか (まだ同期していますか)?
基本的に、私のサービスが: の場合、public void DoSomethingThatTakesAwhile() { ... }
そのサービスを呼び出すと、アプリケーションはメソッドが終了するまで待機しますか?
メソッドがフォールト例外をスローする必要がある場合に備えて、呼び出し元がそのメソッドが終了するまで続行できないようにするためです。
wcf - WCF-例外またはFaultExceptionをスローしますか?
より効率的なものは何ですか?例外をスローするか、障害をスローする...私が見る限り、2つのシナリオがあります。
例外が発生してキャッチされました。既存のものをスローしますか、それとも
Exception
新しいものを作成してFaultException
スローしますか?独自のロジック(ユーザー名を空白にすることはできません)は、ExceptionまたはFaultExceptionとしてエラーをスローする必要があります。どちらを選びますか?
基本的に、ベストプラクティスの方法はどちらですか?WCFのボクシングまたはアンボクシングの例外についてどこかで読んだことを覚えているので、追加のリソースなどが必要になるので、質問します。それで、どちらがより効率的な方法だと思いますか?