私はWebサービスを使用するSilverlightアプリケーションを開発しています。このWebサービスへの呼び出しは非同期に行われます。しかし、非同期呼び出しのプロシージャ中に例外が発生すると、完了したイベントでエラーが発生しますが、私は元の例外情報を失いました。元の例外とは独立して、私はいつも「リモートサーバーはエラーを返しました:NotFound」というバックを返し、スタックは「外部」コードを指しています。Silverlight 2 Webservices
アドバイスはありますか?
私はWebサービスを使用するSilverlightアプリケーションを開発しています。このWebサービスへの呼び出しは非同期に行われます。しかし、非同期呼び出しのプロシージャ中に例外が発生すると、完了したイベントでエラーが発生しますが、私は元の例外情報を失いました。元の例外とは独立して、私はいつも「リモートサーバーはエラーを返しました:NotFound」というバックを返し、スタックは「外部」コードを指しています。Silverlight 2 Webservices
アドバイスはありますか?
それは、Silverlightのプラグインがそれを扱うことができる前に、ブラウザによって処理されます40(x)のHTTPレスポンスに変換されます。これを避けるには、try/catchブロックでWCF呼び出しをラップし、Silverlightで処理できるHTTP応答(例:200)を使用してクライアントに例外データを返送します。http://www.codeproject.com/KB/silverlight/SilverlightExceptions.aspx
これはSLからWCFへの例外で起こります。転送されたデータでFiddler2を使用している場合や、ヒントが得られるHTTPエラーコードが表示されることがあります。これは、SL 4.0のための私の大きな要求項目、より良いWCFのデバッグです。サービスが例外をスローする場合
こんにちはパリー、応答ありがとう。 はい、私はそれを最終的に考え出しましたが、SL側で元の例外をどのようにキャッチできますか? –
reference.vbコードでcatchを試すことができますが、更新するたびに削除され、元の例外がないため問題を実際には解決しません。エラーメッセージを隠す必要のあるデモをやっていない限り、私はこれをしません。 – Paully
あなたが正しくあなたを理解している場合、あなたのSLアプリケーションがWebサービスを使用する場合、サービス側で発生する元の例外をキャッチすることは不可能ですか?このための回避策はありますか? –
上記のJames Caddのアドバイスに従ってください。より有益なエラーメッセージを得ることは確かに役立ちます。残念ながら、デバッガを使用して生成することはできません。
あなたが単体テストの大ファンではないとしても、これは価値あるものです。あなたのWebサービスの悪いデータを意図的に送信する一連のテストを構築し、有益なエラーが返ってくることを確認すると、Silverlightアプリケーションと連携していない理由がわかります。この種のテストを書くには、考え方が異なりますが、Webサービスを可能な限り破壊しようとしていることがわかっていれば、コードに多くの自信を持ちます。問題を追跡する
別の役に立つリンク:http://msmvps.com/blogs/theproblemsolver/archive/2009/01/27/returning-exception-information-to-a-silverlight-client-through-wcf.aspx –