Je tente de créer un service Web ASMX capable d'exécuter une requête HTTP GET. J'ai l'extrait de code simple suivant pour illustrer ce que j'ai déjà fait.Services Web ASMX et HTTP GET
using System.Web.Script.Services;
...
[WebMethod]
[ScriptMethod(UseHttpGet = true)]
public string HelloWorld(HttpContext context)
{
return context.Request.Params.Get("userId").ToString();
}
En plus de cela, je l'ai également ajouté les noeuds suivants dans mon fichier web.config
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
Le problème que je suis face est que je reçois constamment la redoutée " System.Web.HttpContext cannot be serialized because it does not have a parameterless constructor
"message d'erreur chaque fois que j'essaye de déboguer ce webservice. Je n'ai aucune idée de ce qu'est le problème, et j'apprécierais vraiment toute aide qui est offerte pour me sortir de ce dilemme. Je me rends compte que les requêtes HTTP GET sont censées être très simples, mais je ne sais pas vraiment quelle est la cause de mes frustrations.
Dans mon expérience personnelle, [ScriptMethod (UseHttpGet = true)] n'a aucune incidence sur la méthode de service. Cela ne force pas la méthode à utiliser seulement GET et sans elle vous pouvez toujours appeler la méthode avec GET aussi longtemps que vous l'avez autorisé dans votre web.config – Sal