Lorsque vous essayez de créer un service simple pour renvoyer une simple chaîne JSON en suivant plusieurs tutoriels. Je suis coincé sur deux machines différentes avec une mauvaise demande HTTP StatusCode 400. Exemple de tutoriels Service WCF reposant avec JSON PT.1 & PT.2 - http://www.youtube.com/ regarder? v = 5bbdxb_5cz8
J'ai aussi Google et recherché ici (Stackoverflow) pour un problème similaire sans succès. P>
Le problème est que je reçois la 400 demande de mauvaise qualité lorsque vous essayez de faire une mentale Vérifiez pour parcourir le service WCF et exécuter la méthode. En compilant le service et parcourez cette adresse: http: // localhost: 49510 / Service1.svc / getperson a >
Tout comme le tutoriel. J'ai essayé de trouver une solution pour comme 3 jours. Toute aide est appréciée. P> C'est ce que je fais. P> Je crée d'abord un nouveau projet une simple application de service WCF. Je supprime le service par défaut1.svc et ajoutez un nouveau service WCF, qui génère un nouveau service1.svc et un iservice1.cs p> voici le code de l'interface ( iservice1.cs forte >) p> voici le code de la et le Web.config est intacte et regarde aime cette
3 Réponses :
Vous n'avez spécifié aucun point de terminaison ... Par défaut sur WCF 4, un point d'extrémité utilisant BasichttpLinding sera utilisé. Cela ne fonctionnera pas ici car il s'agit d'une liaison à base de savon. Ce que vous voulez utiliser est webhttpbinding qui est basé sur le repos ...
Voici comment remplacer la liaison par défaut avec WCF 4: P>
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp />
</behavior >
</endpointBehaviors>
<behaviors>
Pour le repos WCF, vous devez effectuer la liaison et le paramètre de point d'extrémité dans web.config
Remplacez votre web.config en suivant et il fonctionnera p>
<system.serviceModel>
-----
</protocolMapping>
<behaviors>
<endpointBehaviors>
<behavior>
<webHttp />
</behavior >
</endpointBehaviors>
<behaviors>
------
<system.serviceModel>
Je viens de copier et coller le fichier comme vous l'avez dit! Tu as sauvé ma journée! Excellent! Merci beaucoup!
Je ne suis pas tout à fait sûr pourquoi, mais quand j'ai ajouté l'attribut "usine" à mon fichier .svc (vous devez le faire glisser explicitement sur Visual Studio), tout simplement fonctionne em> strong> - sans modification des paramètres par défaut dans web.config! p>
J'ai ajouté usine = "system.servicemodel.activation.webserviceHostFactory" strong> mon fichier .svc est donc passé de cette option: p>
à ceci: p>
Le seul effet secondaire semble être que lorsque vous cliquez sur le fichier .SVC dans le navigateur, vous obtenez une erreur «noeud final non trouvé», mais le service fonctionne correctement lorsque vous l'invoquez correctement. Comme mentionné précédemment, j'utilise un web.config par défaut avec .NET 4.6 ( Configuration WCF simplifiée ), donc je devrais encore ajouter des informations de terminaison pour que cela fonctionne à nouveau. P>
<% @ ServiceHost Langue = "C #" Débug = "TRUE" SERVICE = "SERVICENAMESPACE.SERVICENNAME" CODEBEHIND = "SERVICENAME.SVC.CS"%> P> P> P> P> P> P> P> P>
<% @ servicehost Langue = "c #" débogue = "vrai" service = "servicenamespace.servicename" codeBeHind = "servicename.svc.cs" usine = "System.ServiceHostFactory"%> < / code> p>