我刚刚编写了我的第一个 Web 服务,所以让我们假设我的 Web 服务知识不存在。我想尝试从 Web 服务调用 dbClass 函数。但是我需要会话中的一些参数。有什么办法可以让这些从 web 服务调用这些会话变量?
Justin
问问题
32924 次
7 回答
21
如果您正在使用 ASP.NET Web 服务,并且希望为您维护一个会话环境,则需要使用指示您需要会话的属性来修饰您的 Web 服务方法。
[WebMethod(EnableSession = true)]
public void MyWebService()
{
Foo foo;
Session["MyObjectName"] = new Foo();
foo = Session["MyObjectName"] as Foo;
}
完成此操作后,您可以访问类似于 aspx 的会话对象。
地铁。
于 2008-09-26T16:51:08.117 回答
5
您应该避免增加服务层添加会话变量的复杂性。正如之前有人指出的那样,将 Web 服务视为孤立的方法,它们从参数列表中获取执行任务所需的所有内容。
于 2008-09-26T16:56:31.597 回答
3
一般来说,Web 服务不应依赖会话数据。把它们想象成普通的方法:参数输入,答案出来。
于 2008-09-26T16:52:32.527 回答
1
如果你需要 Session["username"].ToString(); 与 aspx 后面的其他 C# 页面一样,您只需将 WebService 方法上方的 [WebMethod] 替换为 [WebMethod(EnableSession = true)]
感谢:) 地铁
于 2012-03-06T10:59:48.117 回答
0
也许这会起作用 HttpContext.Current.Session["Name] 否则您可能必须接受一些参数或将它们存储在数据库中
于 2008-09-26T16:48:09.823 回答
0
你的问题有点模糊,但我会尽力回答。
我假设您的会话变量存在于进行 web 服务调用的服务器上,而不是托管 web 服务的服务器上。在这种情况下,您需要将必要的值作为 Web 服务方法的参数传递。
于 2008-09-26T16:52:37.253 回答
0
要在 web 服务中使用会话,我们必须遵循 2 个步骤-
- 在方法上使用 [WebMethod(EnableSession = true)] 属性。
- Session["Name"] =50 (你想保存什么) 请检查以下示例。
[WebMethod(EnableSession = true)] 公共无效保存名称(字符串pname) { 会话[“名称”] = pname; }
于 2017-05-16T15:18:31.423 回答