我正在尝试将参数发送到我的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字符串还有什么问题?
答案 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 装饰。