如何从其他项目调用的WebMethod更改会话值?

时间:2017-12-25 12:56:16

标签: c# web-services session asmx

我有一个aps.net网络服务(asmx),我需要访问包含网络服务(asmx页面)的项目会话。

在Web服务的项目(网站)中,我有会话Test,在同一解决方案的另一个项目中,我调用了一个改变会话Test的值的web方法。

如何从其他项目调用的WebMethod更改会话值?

我试过这个:(但它不起作用)

[WebMethod(EnableSession = true)]
public void ChangeSession()
{
    Context.Session["Test"] = "Some value";
}

我试过这个:(也不行)

HttpContext.Current.Session["Test"] = "Some value";

1 个答案:

答案 0 :(得分:0)

我找到了一种方法:

我创建了新的aspx页面并使用HttpWebRequest

从asmx中调用他

在asmx中:

HttpWebRequest request = (HttpWebRequest)WebRequest.Create("<my domain>/ChangeSessionValue.aspx");
HttpWebResponse response = (HttpWebResponse)request.GetResponse();

在aspx中:

protected void Page_Load(object sender, EventArgs e)
{
    Session["Test"] = "Some Values";
}