Silverlight アプリケーションに WCF REST サービスを使用しています。エラー コード 500 で webfault 例外をスローすると、銀色のライトに「エラー: 404 ファイルが見つかりません」というエラー メッセージが表示されます。私はいくつかの調査を行い、それがブラウザの問題であることを発見しました。つまり、ブラウザ スタックは 200 と 404 の 2 つの応答コードしかプラグインに渡すことができません。つまり、サーバー側で webfault 例外が発生すると、SL は「ファイルが見つかりません」というメッセージのみを表示します。エラーメッセージをクライアントに渡したい。そのような解決策の 1 つは、応答コード 200 を渡し、エラー メッセージを、このような類似のロジックの戻りオブジェクトにアタッチされたクライアントに送信することです。クラス構造を変更する必要がないように、他に可能なことがあるかどうかを知りたいです。また、サーバーから JSON オブジェクトを返しています。基本的に、200 および 400 シリーズ以外の応答コードを取得するには、SilverLight が必要です。
1 に答える
1
Microsoftは、Silverlight 3をリリースしたときに、目的に応じて別のHTTPスタックを追加しました。
HTTPスタックの指定は簡単です。WebRequest.RegisterPrefixメソッドを呼び出すだけで、ClientHttpオブジェクトを渡してクライアントのHTTP処理を指定するか、BrowserHttpオブジェクトを渡してブラウザーのHTTP処理を指定します。これは、Webリクエストを行う前に行います。
新しいスタックは、より多くのHTTPメソッドを処理でき、任意のHTTPリターンコードを処理できるという点で、古いスタックよりも制限が少なくなっています。より詳細な比較については、リンクされたブログ投稿のチャートを参照してください。
于 2012-06-01T05:40:02.870 に答える