2010-10-23 4 views
0

J'appeler un service WCF .NET d'Ajax comme ceci:Appel service WCF avec jquery et paramètres synchroniquement

result = $.ajax({ 
    type: "POST", 
    // async: false, 
    contentType: "application/json; charset=utf-8", 
    url: BaseUrl + "Services/YucataService.svc/SetGameStatusSecure", 
    data: "{'gameID':'" + gameID + "','pid':'" + pid + "','status':'" + newStatus + "','origStatus':'" + oldStatus + "'}", 
    dataType: "json", 
    timeout: 20000 
}); 

La partie serveur ressemble à ceci:

[OperationContract] 
public void SetGameStatusSecure(int gameID, int pid, string status, string origStatus) 
{ 
    ... magic stuff happens 
} 

Il fonctionne bien.

Maintenant, je voudrais appeler le service de manière synchrone. Le seul changement que je fais est d'ajouter "async: false". L'appel revient avec l'état 500 (= erreur interne du serveur). Dois-je configurer différemment le service WCF pour autoriser les appels de synchronisation? Avant de passer à WCF, j'ai utilisé un service .asmx pour appeler de manière synchrone et je n'ai eu aucun problème.

Des idées?

+0

êtes-vous capable de frapper le backend, d'abord essayer d'avoir un point de rupture au backend et voir si vous pouvez frapper le point d'arrêt. Vérifiez où il échoue – kobe

+0

Le point d'arrêt n'est pas atteint lors d'un appel synchrone. Ainsi, WCF refuse l'appel avant que mon code ne soit exécuté. – newtogit

Répondre

1

Je pense que par défaut, WCF accepte les appels synchrones. Si vous voulez le rendre asynchrone, vous devez vous assurer de cocher "Générer des opérations asynchrones" sous l'onglet Avancé. (au moment de l'ajout de la référence de service). Par défaut, cette case à cocher est toujours décochée.

Questions connexes