我的ASP.NET Web应用程序中托管了一个ASMX Web服务。现在,我需要将用户会话传递给这个Web服务。为了测试这个功能,我创建了以下简单方法:
[WebMethod(EnableSession = true)]
public string checkSession()
{
return HttpContext.Current.Session["userid"].ToString();
}
首先,我登录到我的Web应用程序,然后在浏览器中转到我的WebService,并在那个自动生成的测试页面上单击“checkSession”。我已经在3台计算机上进行了测试。这3台计算机都可以正常使用Web应用程序(因此会创建会话等),其中2台在调用Web方法时返回Session ["userid"]的值,但是最后一台计算机返回“Object reference not set to an instance of an object”,因为Session为null。
那么,这些计算机之间有什么区别,为什么我的ASP.NET应用程序可以在所有计算机上获取会话,但是WebService不能呢?