C# JQuery发布到WCF服务

C# JQuery发布到WCF服务,c#,asp.net,wcf,C#,Asp.net,Wcf,将JSON数据发布到下面的WCF服务时收到错误“对象引用未设置为对象的实例” 我猜employee对象没有初始化,但我不确定应该在哪里进行初始化,因为当我使用字符串a测试时,它工作得很好 如有任何建议,我们将不胜感激 接口(IAccount.cs): 实现(AccountService.svc) JSON Post数据: {“firstName”:“Test”,“lastName”:“User”}默认情况下,WebGet的RequestFormat设置为XML。将其设置为Json。默认情况下,W

将JSON数据发布到下面的WCF服务时收到错误“对象引用未设置为对象的实例”

我猜employee对象没有初始化,但我不确定应该在哪里进行初始化,因为当我使用字符串a测试时,它工作得很好

如有任何建议,我们将不胜感激

接口(IAccount.cs):

实现(AccountService.svc)

JSON Post数据:


{“firstName”:“Test”,“lastName”:“User”}

默认情况下,WebGet的RequestFormat设置为XML。将其设置为Json。

默认情况下,WebGet的RequestFormat设置为XML。将其设置为Json。

好的,终于解决了这个问题,希望这对有同样问题的人有所帮助

我的初始JSON看起来正确,但不起作用:{“firstName”:“Test”,“lastName”:“User”}。但是通过查看服务器跟踪,您可以看到内置的XML反序列化器无法将元素映射到WCF服务方法中的对象(在我的例子中是employee对象),这就是导致空引用错误的原因


但是,将表单属性放在与服务参数名称匹配的对象中确实做到了:{“employee”:{“firstName”:“test”}

OK最终解决了这个问题,希望这能帮助有同样问题的人

我的初始JSON看起来正确,但不起作用:{“firstName”:“Test”,“lastName”:“User”}。但是通过查看服务器跟踪,您可以看到内置的XML反序列化器无法将元素映射到WCF服务方法中的对象(在我的例子中是employee对象),这就是导致空引用错误的原因


但是,将表单属性放在与服务参数名称匹配的对象中做了如下操作:{“employee”:{“firstName”:“test”}

不确定我是否理解,服务被标记为JSON,我正在发布JSON数据:$.ajax({type:“POST”,url:/ajax/AccountService.svc/CreateAccount),contentType:“application/json;charset=utf-8”,数据:formData,processData:false,dataType:“json”});我不确定我是否理解,服务被标记为json,我正在发布json数据:$.ajax({type:“POST”,url:“/ajax/AccountService.svc/CreateAccount”,contentType:“application/json;charset=utf-8,数据:formData,processData:false,数据类型:“json”});你能调试服务吗?您知道错误发生在哪里吗?运行了一个服务器跟踪,它不工作的原因似乎是因为它试图使用XML解码JSON字符串。跟踪中报告的错误是:在反序列化过程中XML中遇到一个无法识别的元素,该元素被忽略。是否调试该服务?您知道错误发生在哪里吗?运行了一个服务器跟踪,它不工作的原因似乎是因为它试图使用XML解码JSON字符串。跟踪中报告的错误是:反序列化期间XML中遇到无法识别的元素,该元素被忽略
[ServiceContract(Namespace = "AccountService")]   
public interface IAccountService
    {        
        [OperationContract, WebInvoke(Method = "POST",
     BodyStyle = WebMessageBodyStyle.WrappedRequest, RequestFormat = WebMessageFormat.Json, ResponseFormat = WebMessageFormat.Json)]
        string CreateAccount(Employee employee);        
    }

[DataContract]
    public class Employee
    {
        [DataMember]
        public string firstName { get; set; }

        [DataMember]
        public string lastName {get; set;}

}
AspNetCompatibilityRequirements(RequirementsMode = AspNetCompatibilityRequirementsMode.Allowed)]
    public class AccountService: IAccountService
    {
        public string CreateAccount(Employee employee)
        {
            string test = employee.firstName;

            return test;
        }
    }