C# JQuery发布到WCF服务
将JSON数据发布到下面的WCF服务时收到错误“对象引用未设置为对象的实例” 我猜employee对象没有初始化,但我不确定应该在哪里进行初始化,因为当我使用字符串a测试时,它工作得很好 如有任何建议,我们将不胜感激 接口(IAccount.cs): 实现(AccountService.svc) JSON Post数据: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
{“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;
}
}