【发布时间】:2013-02-26 02:47:01
【问题描述】:
我正在制作一个 WebAPI 应用程序,但发现我无法读取或写入会话。我通常会如何给出和 NullObject 引用错误,即:
Session["Test"] = "Testing"; var testing = Session["Test"].ToString();
会有人碰巧理解为什么这个例子是这样的吗?
using System;
using System.Globalization;
using System.Linq;
using System.Net;
using System.Net.Http;
using System.Web;
using System.Web.Http;
using System.Web.SessionState;
using System.Web.UI.WebControls;
using DotNetNuke.Entities.Modules;
using DotNetNuke.Entities.Portals;
using DotNetNuke.Services.Exceptions;
using DotNetNuke.Web.Api;
namespace DotNetNuke.Modules.ContactsManager
{
public partial class ServicesController : DnnApiController
{
[AllowAnonymous]
[HttpGet]
public HttpResponseMessage createRequest(string amount)
{
//code omitted
HttpContext.Current.Session["Test"] = "Test";
//code omitted
return Request.CreateResponse(HttpStatusCode.OK, result);
}
}
}
【问题讨论】:
-
-1:当你尝试时会发生什么? “我无法读取或写入会话”不是很具有描述性。
-
所以,您的实际问题是,“为什么 Session["Test"] 在我设置后立即为空?”
-
因为在取消引用 Session["Test"] 时获得 NullReferenceException 的唯一原因是 Session["Test"] 是否为 null!
-
您能否根据我的使用情况提供一些建议,说明为什么当我能够在我的应用程序的其他区域(即 view.ascx.cs)中成功使用示例时会出现这种情况
-
我不知道。您没有发布足够多的代码或告诉我们足够的上下文来确定这一点。另外,当您说“成功”时,您的意思是您能够在所有其他领域做到以下几点吗?
Session["Test"] = "Testing"; System.Diagnostics.Debug.Assert(Session["Test"] != null);
标签: c# asp.net session asp.net-web-api