我正在尝试开发以下问题的解决方案。我需要存储有关用户登录并在页面上的时间的数据库信息。目前我在用户登录和使用WCF服务注销时写入db,但是当用户关闭窗口或转到其他网页时如何处理这种情况。 我想知道是否每分钟调用每个用户的线程函数来检查他是否还活着是一个很好的解决方案。任何帮助都会很好。感谢。
答案 0 :(得分:0)
如果您可以稍微等待数据(取决于您的应用程序使用情况),您可以将数据保存到IsolatedStorage,并在用户再次启动应用程序时发送它。这是非常简单的解决方案,但是如果用户不再次打开应用程序,则必须等待数据并且一些数据将丢失(再次,取决于您的应用程序)。
其他解决方案是在How to call WCF from JS或OnUnload事件期间从JavaScript(OnBeforeUnload)发送数据。甚至从JS到一些aspx站点做一个简单的HttpRequest,在查询中传递时间。
编辑:另一个线程是一个好主意(我在当前项目中有这样的解决方案)但是经常运行它会阻塞IIS(取决于用户数量,带宽等)。它还会阻止Session超时,即使用户什么也不做(这是我在项目中使用此解决方案的主要目的)。