会话在调用 Web 服务后返回空值

本文关键字:返回 空值 服务 Web 调用 会话 | 更新日期: 2023-09-27 18:36:45

服务工作正常并返回正确的响应。 问题是如果我在调用服务后使用会话,它会转换为 null 超出我在其中调用服务的范围。

编辑 1:跟踪后,我发现服务中的 MyOperation 方法中有一行将文本写入文件 [ File.WriteAllText(Path, txt);],如果我评论这一行,会话工作正常。 任何解释 ?

protected void Button1_Click(object sender, EventArgs e)
{
    client = new MySvc.MyServiceClient();
    var res = client.MyOperation(); // If I comment this line, sessions works fine.
    Session["val"] = 2000;
}
protected void Button2_Click(object sender, EventArgs e)
{
    var foo = Session["val"]; // always null
}

请帮我。

会话在调用 Web 服务后返回空值

将 Button1_Click 中的三行代码包装在 try-catch 块中,或者只将 try 块中的前两行和 finally 块中的最后一行包装起来。

可能存在未捕获的异常,这会阻止下一行(Session["val"] = 2000;)从正确执行。