C# 如何获取HttpContext调用的web服务方法?
我有40种不同web方法的web服务。 我可以在我的web服务中使用HttpContext获取请求发送的方法吗 我需要它,因为我有一个抽象的通用命令,所有的方法都被激活,我只能访问HttpContext 谢谢 您可能需要: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
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的外观如何?现在可以了。。我还可以得到我发送的参数吗?