c# - 在 .NET ASMX 网络服务中获取 session

标签 c# asp.net web-services session-state

我有一个 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/

相关文章:

java - 在 Java 中如何将 Point[] 转换为 ArrayOfPoint?

C# 类声明 "from metadata"

c# - SocketAsyncEventArgs UDP 服务器缓冲区偶尔充满零

c# - 如何在 Windows 应用程序的语言栏中将语言动态更改为日语

c# - 为什么在 Windows 服务停止时调用 base.OnStop()?

c# - AddEntityFrameworkStores 只能由派生自 IdentityUser<TKey> 的用户调用

java - 用于多个应用程序服务器的单个 Java 缓存

c# - 找不到 ApiController

asp.net - Identity 3.0中如何获取当前UserId? User.GetUserId 返回 null

c# - 自动完成 jquery asp.net c#