HTTP / 1.1 415 Impossible de traiter le message car le type de contenu ‘application / json; charset = utf-8 ‘n’était pas le type attendu’ text / xml; jeu de caractères = utf-8 ‘

essayer de POST dictionnaire json à C # WCF, quand je l’invoque HTTP Response 415. Quelqu’un peut me dire ce qui ne va pas avec mon code.

classe d’object

[DataContract] public class Class1 { [DataMember] public ssortingng AccNo; [DataMember] public ssortingng CompanyName; [DataMember] public ssortingng DocDate; } 

IService1.cs

  [OperationContract] [WebInvoke(Method = "POST", UriTemplate = "json/PostSalesOrderData", RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json, BodyStyle = WebMessageBodyStyle.Bare)] ssortingng PostSalesOrderData(ssortingng data); 

Service1.svc.cs

  public ssortingng PostSalesOrderData(ssortingng data) { JavaScriptSerializer serializer = new JavaScriptSerializer(); Dictionary dict = serializer.Deserialize<Dictionary>(data); return dict["Debtor"].AccNo.ToSsortingng(); } 

Détails de violon

HTTP / 1.1 415 Impossible de traiter le message car le type de contenu ‘application / json; charset = utf-8 ‘n’était pas le type attendu’ text / xml; jeu de caractères = utf-8 ‘. Serveur: Microsoft-IIS / 7.5 X-Powered-Par: ASP.NET Date: jeu, 29 nov. 2012 01:21:55 GMT Contenu-Length: 0

Le noeud final de votre service n’est pas correctement configuré pour recevoir une entrée JSON. Pour que l’atsortingbut [WebInvoke] soit honoré, votre sharepoint terminaison doit disposer de la webHttpBinding et doit également avoir un comportement de sharepoint terminaison de type

Un moyen simple de vous assurer qu’il est correctement configuré consiste à utiliser l’atsortingbut Factory du fichier .svc. Quelque chose comme l’exemple ci-dessous:

 <%@ ServiceHost Language="C#" Debug="true" Service="YourNamespace.YourServiceClass" Factory="System.ServiceModel.Activation.WebServiceHostFactory" %>