Включить веб-сервис ASP.NET ASMX для запросов HTTP POST / GET - PullRequest
64 голосов
/ 06 марта 2009

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

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

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

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

Ответы [ 2 ]

49 голосов
/ 06 марта 2009

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

[ScriptMethod(UseHttpGet = true)]
public string HelloWorld()
{
    return "Hello World";
}
42 голосов
/ 21 марта 2011

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

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