Pregunta

Me gustaría habilitar un servicio web ASP.NET clásico (ASMX) para las solicitudes HTTP POST y GET. Me doy cuenta de que esto se puede hacer en una máquina o nivel de aplicación agregando ...

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

.. a la máquina.config o web.config. Mi pregunta es ¿se pueden habilitar las solicitudes HTTP POST y GET por servicio web o nivel de método web en lugar de por aplicación o máquina?

Mi servicio web está escrito en c # usando net 3.5sp1.

¿Fue útil?

Solución

Intente declarar UseHttpGet sobre su método.

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

Otros consejos

En realidad, encontré una forma un tanto peculiar de hacer esto. Agregue el protocolo a su web.config, pero dentro de un elemento de ubicación. Especifique la ubicación del servicio web como el atributo de ruta, así:

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>
Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top