【发布时间】:2011-11-03 14:39:14
【问题描述】:
我在生产服务器上遇到了一个奇怪的异常:
来源错误:
在执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪来识别有关异常起源和位置的信息。
堆栈跟踪:
[NullReferenceException:对象引用未设置为对象的实例。] ..\Page\Specificaties\Functie\Functie.cs:35 中的 selectie.Functie..ctor() System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,对象 o,对象 t,EventArgs e)+14 System.Web.Util.CalliEventHandlerDelegateProxy.Callback(对象发送者,EventArgs e)+35 System.Web.UI.Control.OnLoad(EventArgs e) +91 System.Web.UI.Control.LoadRecursive() +74 System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207
第 35 行:
Kast kast = (Kast)HttpContext.Current.Session["kast"];
该会话用于多种网络方法,例如:
[WebMethod(EnableSession = true)]
public static String button_click(String information) {
}
和
[WebMethod(EnableSession=true)]
public static void ChangeKast(String id, String value)
{
}
在寻找解决方案时,我发现了这个:
如您所料,如果您为一种 Web 方法启用会话支持,这并不意味着它已为另一种 Web 方法启用。事实上,如果 EnableSession 未针对特定 Web 方法显式设置为 True,则 Context.Session 属性将为 null。
localy 它运行完美,并且从今天开始一直有效...我该如何解决这个问题?
【问题讨论】:
-
应用是如何部署到生产服务器的?是预编译的吗?
-
应用程序构建为部署包,并通过导入应用程序 IIS 管理器安装。
-
@Oskar Kjellin 应用程序在本地运行良好
-
@Sebastiaan 如果我错了,请纠正我。我猜这个代码是从 Global.asax 的事件处理程序中直接或间接调用的。请查看此链接以供进一步参考 - siderite.blogspot.com/2009/01/…