【发布时间】:2012-10-28 10:32:10
【问题描述】:
我正在尝试创建一个以不同方式响应 HttpGet 和 HttpPost 请求的 Web 服务。
我已经用这个启用了 HttpGet:
<webServices>
<protocols>
<add name="HttpGet"/>
</protocols>
</webServices>
我创建了 2 个函数,一个应该为 HttpPost 请求触发,另一个 - 在 HttpGet 上:
[WebMethod]
[HttpPost]
[ActionName("HelloWorld")]
public string HelloWorldPost()
{
return "Hello POST World";
}
[WebMethod]
[HttpGet]
public string HelloWorld()
{
return "Hello GET World";
}
但是,HttpGet、HttpPost 和 ActionName 似乎被完全忽略了。所有对 HelloWorld 的请求(post 或 get)都会触发第二个函数。我需要以其他方式执行此操作吗?我也尝试用这个来限制功能:
[ScriptMethod(UseHttpGet = false)]
但这也没什么区别。
【问题讨论】:
-
你在使用asp.net webapi吗?
-
我猜不是...我正在使用 Visual Studio(.NET 框架 3.5)中的“ASP.NET Web 服务应用程序”项目类型。我没有下载任何额外的库或 API。
-
HttpPostAttribute 来自 MVC,仅存在于 .NET 4.0 msdn.microsoft.com/en-us/library/…
-
您使用的是古老的 ASMX 技术,不应该用于新的开发。
标签: asp.net web-services http-post asmx http-get