Подтвердить что ты не робот

Включить веб-службу ASP.NET ASMX для HTTP-запросов POST/GET

Я хотел бы включить веб-службу ASP.NET classic (ASMX) для HTTP-запросов POST и GET. Я понимаю, что это можно сделать на уровне машины или приложения, добавив...

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

.. в файл machine.config или web.config. Мой вопрос: могут ли HTTP POST и GET-запросы включаться на веб-службу или уровень веб-методов, а не на приложение или машину?

Мой веб-сервис написан в С# с использованием net 3.5sp1.

4b9b3361

Ответ 1

Попробуйте объявить UseHttpGet над вашим методом.

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

Ответ 2

Собственно, я нашел несколько причудливый способ сделать это. Добавьте протокол в свой web.config, но внутри элемента location. Укажите местоположение веб-службы как атрибут пути, например:

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>