2

Wcf Data Service から例外をスローし、.net クライアントから例外をキャッチするベスト プラクティスは何ですか?

4

1 に答える 1

2

一般に、多くのベスト プラクティスがあるかどうかはわかりませんが、役立つ可能性のある考えをいくつか紹介します。

  1. 既定では、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;
        }
    }
}
  1. サーバー側で例外をスローすると、メッセージのみが機能的にクライアントに送信されるため、クライアントに表示するコンテンツが例外メッセージに含まれていることを確認してください。
  2. それ以外は、クライアントでの例外処理に関するその他のベスト プラクティスに従ってください: http://msdn.microsoft.com/en-us/library/seyhszts.aspx
于 2012-08-24T15:48:29.267 に答える