0

我正在尝试开发以下问题的解决方案。我需要在数据库中存储有关用户登录并在页面上的时间的信息。目前,当用户使用 WCF 服务登录和注销时,我正在写入 db,但是当用户关闭窗口或转到其他网页时如何处理这种情况。我想知道每分钟调用每个用户以检查他是否还活着的线程函数是否是一个好的解决方案。任何帮助都会很好。谢谢。

4

1 回答 1

0

如果您可以稍微等待数据(取决于您的应用程序使用情况),您可以将数据保存到 IsolatedStorage,并在用户再次启动应用程序时发送。这是非常简单的解决方案,但是如果用户不再打开应用程序,您将不得不等待数据并且一些数据将会丢失(同样,取决于您的应用程序)。

其他解决方案是在 OnUnload 或 OnBeforeUnload 事件期间从 JavaScript 发送数据(如何JS调用WCF) 。或者甚至从 JS 到某个 aspx 站点做一个简单的HttpRequest,在查询中传递时间。

编辑:另一个线程是一个好主意(我在当前项目中有这样的解决方案)但过于频繁地运行它会阻塞 IIS(取决于用户数量、带宽等)。即使用户什么都不做,它也会防止 Session 超时(这是在我的项目中使用此解决方案的主要目的)。

于 2012-08-07T20:44:59.650 回答