6

LINQ to SQL データ コンテキストの上で単純な WCF データ サービスを実行しています。私の svc.cs ファイルは非常に単純です。ただし、VS2012 から実行すると、一般的な「要求エラー」が表示され、それ以上の情報はありません。どうすればトラブルシューティング/解決できますか?

using System;
using System.Collections.Generic;
using System.Data.Services;
using System.Data.Services.Common;
using System.Linq;
using System.ServiceModel.Web;
using System.Web;
using MyApp.Business.Pmw.DataAccess;

namespace MyApp.DataService
{
    public class SystemData : DataService<PmwModelDataContext>
    {
        // This method is called only once to initialize service-wide policies.
        public static void InitializeService(DataServiceConfiguration config)
        {
            config.SetEntitySetAccessRule("SysParam", EntitySetRights.ReadMultiple);            
            // TODO: set rules to indicate which entity sets and service operations are visible, updatable, etc.
            // Examples:
            // config.SetEntitySetAccessRule("MyEntityset", EntitySetRights.AllRead);
            // config.SetServiceOperationAccessRule("MyServiceOperation", ServiceOperationRights.All);
            config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
        }
    }
}
4

1 に答える 1

19

[ServiceBehavior(IncludeExceptionDetailInFaults=true)]サービスで属性を設定しconfig.UseVerboseErrors、に設定するtrueと、クライアント側ではるかに明確なエラーメッセージが表示されます。これらの設定は、意図しない情報開示につながる可能性があるため、本番環境に移行する前に必ず削除してください。

[ServiceBehavior(IncludeExceptionDetailInFaults = true)]
public class FileService : DataService<FileContext>
{
    public static void InitializeService(DataServiceConfiguration config)
    {
        config.UseVerboseErrors = true;
        config.SetEntitySetAccessRule("*", EntitySetRights.AllRead);
        config.DataServiceBehavior.MaxProtocolVersion = DataServiceProtocolVersion.V3;
    }
}
于 2012-08-27T21:41:33.013 に答える