Ich möchte einen ASP.NET Classic (ASMX) Webdienst für HTTP POST- und GET-Anforderungen aktivieren. Mir ist klar, dass dies auf Maschinen- oder Anwendungsebene durch Hinzufügen von ...
<webServices>
<protocols>
<add name="HttpGet"/>
<add name="HttpPost"/>
</protocols>
</webServices>
.. zur machine.config oder web.config. Meine Frage ist, ob HTTP-POST- und GET-Anforderungen pro Webdienst oder Webmethodenebene und nicht pro Anwendung oder Computer aktiviert werden können.
Mein Webdienst wird mit net 3.5sp1 in c # geschrieben.
asp.net
web-services
asmx
Dean Bates
quelle
quelle
Eigentlich habe ich einen etwas eigenartigen Weg gefunden, dies zu tun. Fügen Sie das Protokoll Ihrer web.config hinzu, jedoch innerhalb eines Standortelements. Geben Sie den Webservice-Speicherort wie folgt als Pfadattribut an:
<location path="YourWebservice.asmx"> <system.web> <webServices> <protocols> <add name="HttpGet"/> <add name="HttpPost"/> </protocols> </webServices> </system.web> </location>
quelle
location
Teil nicht.system.web
lebt direkt im<configuration>
Hauptknoten.GET
, ist dies nur für den einen möglich. Wenn es Ihnen egal ist, ob es für alle gilt, dann können Sie es einfach in den allgemeinensystem.web
Abschnitt[ScriptMethod(UseHttpGet = false)]
Richtig schreiben ?[HttpGet]
und[HttpPost]
Tags im Code- Behind . Aber ich denke, Sie verpassen seinen Standpunkt - diese Tags haben damit zu tun, ob Sie Daten irgendwo abrufen oder veröffentlichen. Er erlaubt mehrere Speicherorte, an denen Daten in der web.config abgerufen / veröffentlicht werden können. Ich hatte nur einen Datenpunkt, daher fand ich ihn unnötig, aber sein Kommentar / seine Antwort ist genau für seine Bedürfnisse und vielleicht auch für andere, wenn sie mehrere haben. Das Vorhandensein mehrerer Standorte hat nichts mit dem Tag zu tun, das Sie in Ihrem CodeBehind verwenden. Dies hängt ausschließlich davon ab, ob Sie Daten abrufen / senden (veröffentlichen).