1

我有一个(设计糟糕的)购物车网站的要求,我必须暂时禁止销售。通过糟糕的设计,我的意思是许多开发人员已经在这方面工作,并且许多点被重复创建多个入口和出口点。问题是会话变量篮子可以从很多地方更改,我不想因为懒惰而在这么多地方更改代码,或者如果我离开了一些地方会发生什么?

我发现的灵丹妙药是,永远不要让会话“篮子”被初始化或将其设置为空,这样无论条目是什么,该过程都永远不会在最大时完成,它会抛出错误,这是可以的。

我无法禁用整个会话,因为该站点将失去其他功能。

我的问题是是否可以仅触发代码 session["basket"] = null; 每当会话对象中发生任何更改时?

4

1 回答 1

2

我可能是错的,但我认为您不能在会话状态更改时以您希望的方式绑定事件,除非您编写自己的会话提供程序。

如果我在这里了解您想要的调试方法,也许您可​​以在调试系统时临时利用 global.asax 事件。

例如,您可以将 session["basket"] = null; 进入 global.asax 中的 Application_PreSendRequestContent 事件。

http://www.techrepublic.com/article/working-with-the-aspnet-globalasax-file/

我没有亲自做过,但值得一试。

于 2013-11-01T13:12:22.827 回答