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

StackOverflow https://stackoverflow.com/questions/618900

  •  03-07-2019
  •  | 
  •  

Вопрос

Я хотел бы включить классический веб-сервис 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.

Это было полезно?

Решение

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

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

Другие советы

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

<location path="YourWebservice.asmx">
  <system.web>
    <webServices>
      <protocols>
        <add name="HttpGet"/>
        <add name="HttpPost"/>
      </protocols>
    </webServices>
  </system.web>
</location>
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top