ASP.NET Web-service - Methoden beschränken zu HttpGet HttpPost oder
Ich versuche, um eine web-service, der wohl reagieren würde, HttpGet und HttpPost-Anfragen anders.
Habe ich aktiviert HttpGet mit diesem:
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
Und habe ich 2 Funktionen, eine, die gefeuert werden sollen, für die HttpPost-request und die anderen - auf HttpGet:
[WebMethod]
[HttpPost]
[ActionName("HelloWorld")]
public string HelloWorldPost()
{
return "Hello POST World";
}
[WebMethod]
[HttpGet]
public string HelloWorld()
{
return "Hello GET World";
}
Doch wie es scheint, HttpGet, HttpPost und ActionName bekommen komplett ignoriert. Alle Anfragen an den HelloWorld (post oder get) fire-die zweite Funktion. Brauche ich dazu eine andere Möglichkeit? Ich habe auch versucht zu beschränken und die Funktionen mit diesem:
[ScriptMethod(UseHttpGet = false)]
Aber das machte auch keinen Unterschied.
Sind Sie mit asp.net webapi?
Ich denke nicht... ich bin mit "ASP.NET Web-Service-Anwendung" Projekt-Typ von Visual Studio (.NET framework 3.5). Ich habe nicht heruntergeladen irgendwelche zusätzlichen libs oder apis.
HttpPostAttribute ist von MVC und existiert nur in .NET 4.0 msdn.microsoft.com/en-us/library/...
Sie sind mit der alten ASMX-Technologie, die nicht für Neuentwicklungen verwendet werden.
Ich denke nicht... ich bin mit "ASP.NET Web-Service-Anwendung" Projekt-Typ von Visual Studio (.NET framework 3.5). Ich habe nicht heruntergeladen irgendwelche zusätzlichen libs oder apis.
HttpPostAttribute ist von MVC und existiert nur in .NET 4.0 msdn.microsoft.com/en-us/library/...
Sie sind mit der alten ASMX-Technologie, die nicht für Neuentwicklungen verwendet werden.
InformationsquelleAutor Vampire | 2012-10-28
Du musst angemeldet sein, um einen Kommentar abzugeben.
ASP.NET Web-Service-Anwendung Verhalten sich anders als ASP.NET MVC, die entlang der Linien, die Ihre Erwartungen übertreffen werden. In Ihrem code, die beide HttpGet/HttpPost und ActionName Attribute gehören zu MVC wie bereits von Amiram Korach. Diese Attribute werden ignoriert, wenn hosted-as-a-web-service-Anwendung.
"Routing" in web-service-Anwendung basiert auf der Methode name (HelloWorldPost und "HelloWorld") und nicht basierend auf dem HTTP-VERB.
Auslösen, die POST-flow, Sie berufen
HelloWorldPost
(service.asmx/HelloWorldPost)InformationsquelleAutor
Ich habe eine Idee.
Für Vorspeisen, Ihre web.config-Datei für Ihre web-Dienst wird wie folgt Aussehen:
Nächsten, unabhängig von der form-Methode, die Sie verwenden, rufen Sie eine web-Methode x.
Mein Hauptpunkt ist, dass Sie überprüfen
HttpContext.Current.Request.HttpMethod
und je nachdem, welche Methode verwendet wird, rufen Sie die verschiedenen Methoden.InformationsquelleAutor