C# 如何获取HttpContext调用的web服务方法?

C# 如何获取HttpContext调用的web服务方法?,c#,web-services,http,httpcontext,C#,Web Services,Http,Httpcontext,我有40种不同web方法的web服务。 我可以在我的web服务中使用HttpContext获取请求发送的方法吗 我需要它,因为我有一个抽象的通用命令,所有的方法都被激活,我只能访问HttpContext 谢谢 您可能需要: HttpContext.Current 但请确保已打开ASPX兼容模式,否则将无法访问该属性 您还可以将函数名保存到Items数组中,如下所示: void myServiceMethod() { HttpContext.Current.Items["MethodName

我有40种不同web方法的web服务。 我可以在我的web服务中使用HttpContext获取请求发送的方法吗

我需要它,因为我有一个抽象的通用命令,所有的方法都被激活,我只能访问HttpContext

谢谢

您可能需要:

HttpContext.Current
但请确保已打开ASPX兼容模式,否则将无法访问该属性

您还可以将函数名保存到Items数组中,如下所示:

void myServiceMethod()
{
  HttpContext.Current.Items["MethodName"] = "myServiceMethod";
  // ...
  // here comes your method implementation
}
然后您可以在任何地方阅读
HttpContext.Current.Items[“MethodName”]

Collection HttpContext.Current.Items始终仅对当前请求有效,因此您可以将其用作任何请求相关信息的存储


当请求被响应时,它是垃圾。

如果我理解并更正了您的问题,您可以使用
HttpRequest的属性:

string methodName = HttpContext.Current.Request.PathInfo;

字符串
methodName
将是带有斜杠前缀(
/
)的方法名称:
“/MyWebMethod”

只给我web服务asmx路径,而不是特定的方法-然后您可以将方法名称保存到HttpContext.Current.Items中,作为方法实现的第一件事。然后,您可以在当前请求范围内的任何位置读取名称。谢谢,但它返回的是空字符串,而不是方法name@DorCohen:您在客户端上使用的URL外观如何?像
someBase/MyWebService.asmx/MyWebMethod
?您是否在
web.config
部分使用了URL映射模块?不只是:someBase/MyWebService。asmx@DorCohen:如何从当前要调用的40个不同web方法中指定一个?在您的情况下,HttpContext.Current.Request.Path的外观如何?现在可以了。。我还可以得到我发送的参数吗?