0

私はすでに 1000 以上の機能を持つアプリケーションを開発しています。ここで、これらの関数を変更せずに、Silverlight でフォールト コントラクトまたは例外処理を実装する必要があります。

WCF サービス レイヤーの 1 か所と Silverlight アプリケーションの 1 か所に実装できる一般的な方法はありますか?

これを実装したいのは、WCF レイヤーで例外が発生した場合、実際の例外メッセージが Silverlight に送信されないためです。

Silverlight は次のようなメッセージのみを受け取ります。

「リモートサーバーが見つかりません...」

本当の問題は、私はすでにシステムを開発しており、サービス層の各機能をあまり変更せずに falultcontracts を実装する必要があることです..だから、falutcontract ラッパーを作成して WCF サービス層の上に配置する方法はありますか?

4

1 に答える 1

1

あなたのケースで何が起こっているのかという質問から私には100%明確ではありませんが、私は言及することができます:

  • 「リモートサーバーが見つかりません... 」という例外がSilverlightで発生した場合、サービスで何をしても例外の詳細は取得されません(Silverlightアプリができる場合、サービスはこれらの詳細でどのように応答できますかサービスが見つかりませんか?)。
  • デバッグ目的でアプリのサービスからの例外の詳細を表示する場合は、ServiceBehaviorのIncludeExceptionDetailInFaultsプロパティを使用してサービス全体に適用できます。これはセキュリティ リスク (内部例外の詳細を開示する) と見なされるため、運用環境にはお勧めしません。
  • 私の知る限り、操作自体にFaultContractsを設定する必要があり、それらをスローするときに明示的にする必要があります。

PS。あなたの本当の問題は、サービスに 1000 を超える関数があり、それが健全に見えないことかもしれません。一方、それらが生成された関数である場合、障害コードも生成できる可能性があるため、さまざまな祝福になる可能性がありますか?

于 2012-09-18T20:21:16.017 に答える