Wcf Data Service から例外をスローし、.net クライアントから例外をキャッチするベスト プラクティスは何ですか?
質問する
2476 次
1 に答える
2
一般に、多くのベスト プラクティスがあるかどうかはわかりませんが、役立つ可能性のある考えをいくつか紹介します。
- 既定では、WCF Data Services は例外の詳細をクライアントに送信しません。これは、サービスはデフォルトで安全であるべきだと考えているためです。例外の詳細を送信すると、意図しない情報漏えいが発生する可能性があります。詳細な例外送信をオンにするには、
ServiceBehavior
属性をサービスに追加しUseVerboseErrors
て true に設定する必要があります。
using System.Data.Services;
using System.Data.Services.Common;
using System.ServiceModel;
namespace Scratch.Web
{
[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class ScratchService : DataService<ScratchEntityFrameworkContext>
{
public static void InitializeService(DataServiceConfiguration config)
{
config.SetEntitySetAccessRule("*", EntitySetRights.All);
config.SetServiceOperationAccessRule("*", ServiceOperationRights.AllRead);
config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
config.UseVerboseErrors = true;
}
}
}
- サーバー側で例外をスローすると、メッセージのみが機能的にクライアントに送信されるため、クライアントに表示するコンテンツが例外メッセージに含まれていることを確認してください。
- それ以外は、クライアントでの例外処理に関するその他のベスト プラクティスに従ってください: http://msdn.microsoft.com/en-us/library/seyhszts.aspx。
于 2012-08-24T15:48:29.267 に答える