2010-04-21 29 views
0

我正在开发一个带有ASP.NET的Web服务,不是.asmx或WCF,它是自定义的,所以我正在使用Http类(上下文,请求,响应等)。会话被禁用。我正在处理我自己的处理程序和模块。在ASP.NET中运行连接时保留一个对象

我想保持一个对象活着并且在连接存活的时候可以访问。我的意思是,一个请求进入,我给它分配一个DbCommand,并且该连接将使用该命令,只要该连接结束,该对象应该被丢弃。我认为,我可以将它添加到我的IPrincipal实现,然后当连接在模块中进行身份验证并且用户检索到时,我可以将该DbCommand添加到IPrincipal,以便我可以从任何地方想要在代码中,并在模块EndRequest事件后,我可以处置它,但我不知道是否有更好的方法来做到这一点。

您认为如何?

欢呼声

回答

0

它有点依赖于你的WCF配置。

我建议你阅读这篇文章,因为它可能会让你对你想要的方向有所了解。 http://msdn.microsoft.com/en-us/magazine/cc163590.aspx

您的客户如何连接到服务?

你也可以在服务上使用单例模式(所以它和它的数据在'会话'中持续存在),并以每个用户为基础将数据存储在服务对象本身中。

+0

这不是WCF。客户端连接一个简单的WebRequest。我想避免的是为此保留一个集合,因为那样我必须同步访问并添加/删除。例如,我只想将对象粘贴到HttpConext或HttpRequest,但我不知道在哪里。干杯。 – vtortola 2010-04-21 13:54:39

+0

啊,我误解了这个问题!我道歉。 你最好的选择(恕我直言)将是缓存然后。您不需要使用缓存中的集合来存储对象,并可以依赖用户特定的数据作为检索其对象的关键。 – Krisc 2010-04-21 14:01:18

+0

但随着缓存将持续在连接之间,不是吗?我想保留它只是为了连接时间。 – vtortola 2010-04-21 14:17:42