Отправка строки Json в веб-службу .asmx, вызывающая HTTP 500 - PullRequest
1 голос
/ 06 февраля 2012

Я пытаюсь отправить параметры в мой веб-сервис, который предлагает как XML, так и JSON, в зависимости от типа запроса в заголовке. Однако, когда я передаю параметры JSON, серверы возвращают мне ответ с кодом состояния 500 .

Вот метод, который я вызываю на своем веб-сервисе:

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

*Employee - это тестовый класс, который содержит несколько строковых и целых полей

строка 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 голосов
/ 18 апреля 2012

У меня была такая же проблема. Я добавил в свой 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 .

...