web-dev-qa-db-fra.com

Activer le service Web ASP.NET ASMX pour HTTP POST / GET

Je souhaite activer un service Web ASP.NET classique (ASMX) pour les requêtes HTTP POST et GET). Je sais que cela peut être fait au niveau de la machine ou de l'application en ajoutant ...

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

.. au fichier machine.config ou web.config. Ma question est la suivante: les requêtes HTTP POST et les requêtes GET peuvent-elles être activées par service Web ou niveau de méthode Web plutôt que par application ou machine?

Mon service Web est écrit en c # avec net 3.5sp1.

64
Dean Bates

Essayez de déclarer UseHttpGet sur votre méthode.

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}
49
tanathos

En fait, j'ai trouvé une façon un peu bizarre de faire ça. Ajoutez le protocole à votre web.config, mais à l'intérieur d'un élément location. Spécifiez l'emplacement du service Web comme attribut path, comme suit:

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>
42
BLΞND OnLine