我有一个 ASMX 网络服务与我的 ASP.NET 网络应用一起托管。现在,我需要让用户 session 进入 Web 服务。为了测试这个,我做了这个简单的方法:
[WebMethod(EnableSession = true)]
public string checkSession()
{
return HttpContext.Current.Session["userid"].ToString();
}
因此,首先我登录到我的 Web 应用程序,然后在浏览器中转到我的 Web 服务并单击自动生成的测试页面上的“checkSession”。我已经在 3 台计算机上对此进行了测试。所有 3 个都可以在 webapp 上正常工作(因此正在创建 session 等),其中 2 个在调用 web 方法时返回 Session["userid"] 的值,但是最后一台计算机返回“对象引用未设置为一个对象的实例”,因为 Session 为空。
那么,这些计算机之间有什么区别?为什么我的 ASP.NET 应用程序可以在所有计算机上获取 session ,但 Web 服务不能?
最佳答案
也许为时已晚,但你试过这个吗:
[WebMethod(EnableSession = true)]
public string checkSession()
{
return HttpContext.Current.Session.SessionID
}
关于c# - 在 .NET ASMX 网络服务中获取 session ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3297637/