将Json字符串发送到.asmx Web服务,导致HTTP 500

时间:2012-02-06 14:07:33

标签: android json web-services asmx

我正在尝试将参数发送到我的Web服务,该服务根据标头中的请求类型提供XML和JSON。但是,当我传递JSON参数时,服务器会回复状态代码 500

这是我在我的网络服务上调用的方法:

[WebMethod]
public string EchoEmployee(Employee emp)
{
    return "you sent employee " + emp.Name;
}

* Employee是一个测试类,包含几个字符串和int字段

我传递给webservice方法的JSON字符串:

{"emp":[{"Name":"Waqas Aslam","Company":"Dell"}]}

如果我查看我的方法的xml结构,这就是它的解释:

<EchoEmployee xmlns="TestIntegrationLayer">
      <emp>
        <Id>int</Id>
        <Name>string</Name>
        <Company>string</Company>
        <Address>string</Address>
        <Phone>string</Phone>
        <Country>string</Country>
        <DOB>dateTime</DOB>
      </emp>
</EchoEmployee>

我知道我在JSON字符串中只设置了两个键,但这有关系吗?我需要定义所有密钥吗?我的JSON字符串还有什么问题?

1 个答案:

答案 0 :(得分:0)

我遇到了同样的问题。我在web.config中添加了以下内容:

<system.webServer>
    <handlers>
        <add name="ScriptHandlerFactory" verb="*" path="*.asmx" 
             preCondition="integratedMode" 
             type="System.Web.Script.Services.ScriptHandlerFactory, System.Web.Extensions, Version=3.5.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
    </handlers>
</system.webServer>

同时通过如下方式修改类来确保您的服务是 ScriptService

[ScriptService]
public class SomeService : BaseWebService
{
}

我必须删除 WebService 装饰。