Веб-сервисы ASMX и HTTP GET - PullRequest
1 голос
/ 25 июня 2010

Я пытаюсь создать веб-сервис ASMX, который может выполнять HTTP-запрос GET. У меня есть следующий простой фрагмент кода, чтобы проиллюстрировать то, что я уже сделал.

using System.Web.Script.Services;
...

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(HttpContext context)
{
 return context.Request.Params.Get("userId").ToString();
}

В дополнение к этому я также добавил следующие узлы в мой файл Web.config

<webServices>
  <protocols>
    <add name="HttpGet"/>
    <add name="HttpPost"/>
  </protocols>
</webServices>

Проблема, с которой я сталкиваюсь, заключается в том, что я постоянно получаю страшное сообщение об ошибке "System.Web.HttpContext cannot be serialized because it does not have a parameterless constructor", когда пытаюсь отладить этот веб-сервис. Я понятия не имею, в чем проблема, и я был бы очень признателен за любую помощь, которая предлагается, чтобы вытащить меня из этого затруднения. Я понимаю, что запросы HTTP GET должны быть очень простыми, но я действительно не уверен, в чем причина моих разочарований.

1 Ответ

4 голосов
/ 25 июня 2010

Я думаю, что вы хотите

[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(int userId)
{
    return userId.ToString();
}

Вы можете указать параметры в сигнатуре функции и получить доступ к HttpContext как Context (свойство базового класса WebService), если вам это нужно.

...