【发布时间】:2014-04-24 03:09:31
【问题描述】:
我有以下网络服务:
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
[System.ComponentModel.ToolboxItem(false)]
public class Test : System.Web.Services.WebService
{
[WebMethod(EnableSession=true)]
public void SetSession()
{
HttpContext.Current.Session["Test"] = true;
}
[WebMethod(EnableSession = true)]
public bool IsSessionSaved()
{
var temp = HttpContext.Current.Session["Test"];
return temp != null;
}
}
注意我有EnableSession = true。
在我的客户端上,我添加了 Web 服务参考而不是服务参考。
注意:为了创建 Web 服务引用,而不是 Visual Studio 为您添加的默认服务引用,我按照以下步骤操作。
在我的客户端控制台应用程序上,我有:
var client = new Test();
client.SetSession();
bool isSessionSaved = client.IsSessionSaved();
为什么是isSessionSaved = false?
更新:如果我通过默认网站调用方法,我不认为问题出在网络服务上。我确定客户端没有保存 cookie。也许我需要一个 cookie 感知客户端。我可能需要修改客户端。
【问题讨论】:
-
你的
Web.config的会话配置是什么? -
会话在 Web 服务上效果很好。我认为是客户端没有保存 cookie :(
标签: c# asp.net web-services session