2010-09-22 4 views
2

Je dispose d'un service WCF Ajax très simple qui doit renvoyer une seule entité de type EntityObject sérialisé à JSON.Le service WCF Ajax activé ne répond pas avec des données

Voici mon fichier .svc:

[ServiceContract(Namespace = "FASServices")] 
[AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)] 
public class FASService 
{ 
    [OperationContract, WebGet(ResponseFormat=WebMessageFormat.Json)] 
    public FrameAttributes GetFrameAttributes(long frameID) 
    { 
     var data = FrameAttributeAccessor.GetFrameAttributes(frameID); 

     WebOperationContext.Current.OutgoingResponse.Format = WebMessageFormat.Json; 

     return data; 
    } 
} 

J'ai consommé ce service dans une page ASP.Net par référence de service sur l'accès ScriptManager et un proxy de service généré en conséquence.

Voici mon web.config:

<system.serviceModel> 
    <behaviors> 
    <endpointBehaviors> 
    <behavior name="FASAdmin.FASServiceAspNetAjaxBehavior"> 
    <enableWebScript /> 
    </behavior> 
    </endpointBehaviors> 
    </behaviors> 
    <serviceHostingEnvironment aspNetCompatibilityEnabled="true" multipleSiteBindingsEnabled="true" /> 
    <services> 
    <service name="FASAdmin.FASService"> 
    <endpoint address="" behaviorConfiguration="FASAdmin.FASServiceAspNetAjaxBehavior" 
    binding="webHttpBinding" contract="FASAdmin.FASService" /> 
    </service> 
    </services> 
</system.serviceModel> 

Lorsque vous appelez le service que je peux voir le XHR quitter mon navigateur (via Firebug), et peut également voir le serveur de développement ASP.Net recevoir la requête HTTP et appelez ensuite le service qui effectue une recherche simple en utilisant une clé d'entreprise transmise via ma couche d'accès aux données (j'ai un point d'arrêt sur l'instruction de retour ci-dessus, et je peux inspecter l'entité renvoyée). Cependant, une fois que le contrôle quitte mon code de service et revient, aucune réponse n'est envoyée à mon navigateur. Par la suite, les données sérialisées JSON ne sont jamais reçues, il n'y a même pas d'en-tête de réponse à inspecter.

Est-ce que quelqu'un sait pourquoi cela pourrait être le cas? Quelqu'un peut-il offrir des techniques pour déboguer la pile WCF afin de suivre le message de bout en bout?

Merci d'avance.

Répondre

Questions connexes