Recherche de quelques conseils sur un service de repos de WCF 4 basé sur l'extension de modèle de repos de WCF 40 (CS) dans VS2010. J'ai passé les deux derniers jours à essayer de faire fonctionner ce buggère, en examinant d'autres messages, et pendant que je suis devenu proche, je ne peux pas sembler franchir la ligne d'arrivée. Après beaucoup de frustration, il frappe enfin le service et l'affichage (à l'aide de Fiddler Demand Builder), mais le paramètre de méthode traverse comme NULL, mais elle est correctement définie dans le constructeur de demandes. Je suppose que cela peut être un problème de configuration à ce stade, mais à mesure que la date limite se tient à la limite, je manque de temps pour plus de recherches. FWIW, dans le débogage, la variable JSRONDING est NULL. Self Certes, c'est-à-dire une question de noob car c'est la première fois que cela me reste, toute aide serait très appréciée!
Merci d'avance. P>
web.config p> global.asax.cs p> code de service p> tête de demande de violeur p > HTTP/1.1 200 OK
Cache-Control: private
Content-Length: 12
Content-Type: application/json; charset=utf-8
Server: Microsoft-IIS/7.5
X-AspNet-Version: 4.0.30319
X-Powered-By: ASP.NET
Date: Mon, 21 Mar 2011 21:31:14 GMT
"Received: "
5 Réponses :
Avez-vous essayé l'attribut [webgget (Uritemplate = ..] Attribut au lieu du message pour voir si cela fonctionnerait? Voici un exemple - http://blogs.msdn.com/b/kaevans /Rarchive/2007/09/04/Creatting-a-json-service-with-WebGet-and-wcf-3-5.aspx P>
J'ai eu une méthode WebGet définie qui est renvoyée comme prévu, a commenté actuellement à nettoyer le code pour se concentrer sur le poste. J'avais cela en place avec une méthode WebInvoke et j'ai trouvé un post sur Stackoverflow (ne peut pas le trouver maintenant) qui ne l'incluait pas. Avant de supprimer, je n'allais pas du tout, récompensez-vous un 404, après avoir retiré, je reçois maintenant 200 réponses, mais aucune donnée. Ne semblait pas avoir d'importance si je l'ai laissé comme la racine ("") ou mettre un point final dans
Quel système d'exploitation et de version d'IIS ou de serveur IIS Express ou WebV devez-vous, utilisez-vous? Dans quel cadre le pool d'applications est-il réglé? L'erreur 404 a peut-être été en raison d'un problème associé ici social.msdn.microsoft.com/forums/en-us/wcf/thread/...
2008 R2 SP1 IIS 7 avec .NET 4 enregistré avec aspnet_regiis.exe. Tous les pointeurs sur Où aller dans IIS 7 pour ajouter la DLL référencée? Essayer également de gagner 7 SP1 avec IIS installé, mais je pense que c'est IIS 7.5 ... toujours pas de jus.
Mise à jour: Activé Tracing et semble avoir une exception lors de la désérialisation ... "Un élément non reconnu WSA rencontré dans le XML lors de la désérialisation qui a été ignoré." Ma compréhension est avec le nouveau routage dans WCF 4, je ne devrais pas avoir à s'inquiéter de la définition des points d'extrémité. Quelqu'un sait si c'est vrai?
J'ai dû voter sur celui-ci à mesure que l'OA vous pose spécifiquement de poster. Le Web regorge d'exemples d'obtention qui fonctionne facilement, mais je suis venu à cette question à la recherche d'une réponse sur ce qui doit changer pour faire un post et cette réponse indique l'utilisation de GET.
Trouvé que l'appelant soit fermé et / ou éliminer les dégâts de la réponse, entraînant un défaut de service "Le message a été disposé"
Avez-vous essayé d'entrer {"JSRONDING": "Frank"} dans le corps de la demande (constructeur de demandes de Fiddler)? P>
Je pense que c'est la vraie réponse. Lorsqu'il est enveloppé, le JSON est désérialisé dans les arguments de la méthode par nom.
J'utilise celui-ci et travaille:
[WebInvoke(ResponseFormat = WebMessageFormat.Json,
RequestFormat = WebMessageFormat.Json,
BodyStyle = WebMessageBodyStyle.WrappedRequest,
Method = "POST",
UriTemplate = "setExpositions?shelfId={shelfId}")]
[OperationContract]
public bool SetExpositions(int shelfId, List<WcfExposition> expositions)
{
}
Pouvez-vous vous montrer d'exemple de données JSON qui fonctionne avec cette opération?
Je pense qu'il peut y avoir un problème dans Définit qui non emballés et définissez le corps de la demande sur Boîttyle = webmessagebodystyle.wraveSrequest code>, qui, je pense, bien que la documentation soit totalement peu claire - attendez-vous à ce que l'élément soit enveloppé avec le nom de la méthode. p>
'{"nom": "frank"}' code> (remarquez les citations simples autour de lui. Qu'est-ce que vous postez une chaîne contenant JSON. je Ne savez pas pourquoi vous voudriez cela. Cela me rappelle http://thedailywtf.com/articles/ Xmld-xml.aspx où ils mettent XML dans leur XML. Vous mettez JSON dans votre JSON. P>
J'ai oublié de mentionner, la solution utilise IIS 7 pour le serveur Web et non le serveur de débogage APNET.