2010-08-27 5 views
1

J'ai des problèmes avec mon service WCF. Je veux que ma méthode retourne une liste formatée en JSON.Le service WCF ASP.NET ne renvoie aucun résultat

Lorsque j'appelle la méthode, ma réponse est vide. Même quand je mets le BodyStyle de la méthode à Wrapped.

Il fonctionne si je retourne null, la sortie devient alors:

null 

et BodyStyle mis à Enveloppé:

{ 
    VerwerkStatus: null 
} 

Si je debug et regardez la liste il y a 87 articles ou si Je retourne list.Count(), je reçois 87, donc la liste n'est pas vide.

Je suppose qu'il ne fonctionne actuellement que lorsque je renvoie un entier ou une valeur de chaîne. Si je renvoie 1 objet VerwerkStatus, cela ne fonctionne pas non plus.

Le service est hébergé dans un projet de site Web ASP.NET s'exécutant sur ASP.NET 3.5. L'objet VerwerkStatus est un objet Entity qui est donc sérialisable.

Mon code:

/// <summary> 
/// 
/// </summary> 
/// <param name="sessie"></param> 
/// <param name="verwerkStatusId"></param> 
/// <returns></returns> 
[OperationContract] 
[WebInvoke(Method = "GET", ResponseFormat = WebMessageFormat.Json)] 
public List<VerwerkStatus> Status(string sessie, int verwerkStatusId) 
{ 
    if (!String.IsNullOrEmpty(sessie)) 
    { 
     Guid sessieGuid = new Guid(sessie); 
     var status = statusRepository.GetStatus(sessieGuid, verwerkStatusId); 
     var list = status.ToList(); 
     // list.Count() == 87 
     // none in browser 
     return list; 
    } 
    else 
    { 
     return null;// "FOUT: Geen sessie"; 
    } 
} 

et web.config:

<system.serviceModel> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" /> 
    <behaviors> 
     <endpointBehaviors> 
      <behavior name="SheetProcessServiceAspNetAjaxBehavior"> 
       <webHttp /> 
      </behavior> 
     </endpointBehaviors> 
     <serviceBehaviors> 
      <behavior name="SheetProcessServiceAspNetAjaxBehavior"> 
       <serviceMetadata httpGetEnabled="true" /> 
       <serviceDebug includeExceptionDetailInFaults="false" /> 
      </behavior> 
     </serviceBehaviors> 
    </behaviors> 
    <services> 
     <service name="SheetProcessService" behaviorConfiguration="SheetProcessServiceAspNetAjaxBehavior"> 
      <endpoint address="" behaviorConfiguration="SheetProcessServiceAspNetAjaxBehavior" binding="webHttpBinding" contract="SheetProcessService" /> 
      <endpoint address="mex" binding="mexHttpBinding" contract="IMetadataExchange" /> 
     </service> 
    </services> 
</system.serviceModel> 

Je ne peux pas le faire fonctionner ..

Répondre

0

Assurez-vous que le La classe VerwerkStatus est décorée avec [DataContract] et les propriétés avec [DataMember]

Questions connexes