我刚刚编写了我的第一个Web服务,因此我们假设我的Web服务知识不存在。我想尝试从Web服务调用dbClass函数。但是我需要会话中的一些参数。有什么方法可以从webservice中调用这些会话变量吗?
答案 0 :(得分:20)
如果您使用的是ASP.NET Web服务,并且希望为自己维护会话环境,则需要使用指示需要会话的属性来修饰Web服务方法。
[WebMethod(EnableSession = true)]
public void MyWebService()
{
Foo foo;
Session["MyObjectName"] = new Foo();
foo = Session["MyObjectName"] as Foo;
}
完成此操作后,您可以访问类似于aspx的会话对象。
地铁。
答案 1 :(得分:5)
您应该避免增加添加会话变量的服务层的复杂性。正如之前曾指出的那样,将Web服务视为孤立的方法,它们可以从参数列表中获取执行任务所需的所有内容。
答案 2 :(得分:3)
通常,Web服务不应该依赖会话数据。将它们视为普通方法:参数进入并得出答案。
答案 3 :(得分:1)
如果你不想要Session [“username”]。ToString();就像在aspx后面的其他C#页面一样,你应该简单地用[WebMethod(EnableSession = true)]替换WebService方法之上的[WebMethod]
感谢:) Metro
答案 4 :(得分:0)
也许这会起作用HttpContext.Current.Session [“Name] 否则您可能需要接受一些参数或将它们存储在数据库中
答案 5 :(得分:0)
你的问题有点模糊,但我会尽力回答。
我假设您的会话变量存在于进行Web服务调用的服务器上,而不是存在于Web服务的服务器上。在这种情况下,您需要传递必要的值作为Web服务方法的参数。
答案 6 :(得分:0)
要在webservice中使用会话,我们必须遵循2个步骤 -
[WebMethod(EnableSession = true)] public void saveName(string pname) { Session["Name"] = pname; }