Я пытаюсь создать веб-сервис ASMX, который может выполнять HTTP-запрос GET. У меня есть следующий простой фрагмент кода, иллюстрирующий то, что я уже сделал.Веб-службы 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-запросы должны быть очень простыми, но я действительно не знаю, в чем причина моих разочарований.
В моем личном опыте [ScriptMethod (UseHttpGet = true)] вообще не влияет на метод службы. Это не заставляет метод использовать GET, и без него вы все равно можете вызвать метод с GET, если вы разрешили его в своем web.config – Sal