【发布时间】:2017-05-16 23:18:31
【问题描述】:
我刚刚编写了我的第一个 Web 服务,所以让我们假设我的 Web 服务知识不存在。我想尝试从 Web 服务调用 dbClass 函数。但是我需要会话中的一些参数。有什么办法可以让这些从 web 服务调用这些会话变量?
【问题讨论】:
标签: web-services session
我刚刚编写了我的第一个 Web 服务,所以让我们假设我的 Web 服务知识不存在。我想尝试从 Web 服务调用 dbClass 函数。但是我需要会话中的一些参数。有什么办法可以让这些从 web 服务调用这些会话变量?
【问题讨论】:
标签: web-services session
如果您正在使用 ASP.NET Web 服务,并且希望为您维护一个会话环境,则需要使用指示您需要会话的属性来修饰您的 Web 服务方法。
[WebMethod(EnableSession = true)]
public void MyWebService()
{
Foo foo;
Session["MyObjectName"] = new Foo();
foo = Session["MyObjectName"] as Foo;
}
完成此操作后,您可以访问类似于 aspx 的会话对象。
地铁。
【讨论】:
您应该避免增加服务层添加会话变量的复杂性。正如之前有人指出的那样,将 Web 服务视为孤立的方法,它们从参数列表中获取执行任务所需的所有内容。
【讨论】:
一般而言,Web 服务不应依赖会话数据。把它们想象成普通的方法:参数进去,答案出来。
【讨论】:
如果你需要 Session["username"].ToString();与 aspx 后面的其他 C# 页面一样,您只需将 WebService 方法上方的 [WebMethod] 替换为 [WebMethod(EnableSession = true)]
感谢 :) 地铁
【讨论】:
也许这会起作用 HttpContext.Current.Session["Name] 否则你可能不得不接受一些参数或将它们存储在数据库中
【讨论】:
你的问题有点含糊,但我会尽力回答。
我假设您的会话变量存在于进行 web 服务调用的服务器上,而不是托管 web 服务的服务器上。在这种情况下,您需要将必要的值作为 Web 服务方法的参数传递。
【讨论】:
要在 web 服务中使用 session,我们必须遵循 2 个步骤-
【讨论】: