2012-08-27 19 views
6

Estoy haciendo un servicio de datos WCF simple en la parte superior del contexto de datos de LINQ to SQL. Mi archivo svc.cs es muy simple. Sin embargo, cuando lo ejecuto desde VS2012, obtengo un "Error de solicitud" genérico sin más información. ¿Cómo puedo solucionarlo/resolverlo?WCF Data Service - Error de solicitud

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; 
     } 
    } 
} 

Respuesta

19

Si se establece el atributo [ServiceBehavior(IncludeExceptionDetailInFaults=true)] en el servicio y establecer config.UseVerboseErrors a true, recibirá un mensaje de error mucho más clara en el lado del cliente. Asegúrese de eliminar estas configuraciones antes de pasar a producción, ya que podrían dar como resultado la divulgación involuntaria de información:

[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; 
    } 
} 
Cuestiones relacionadas