与nhibernate和asp.net的状态会话。

| 假设我有一个客户正在填充来自网站的数据。所使用的基础持久性是Nhibernate。 现在这一系列的事件是这样的 用户填写表格。 他提交表格。 创建nhibernate sessionfactory并通过客户对象将其保存到数据库。 数据库使用本机生成器为nhibernate提交会话对象 但是在服务器的响应到达客户端之前发生了不幸的事情。与客户端的连接断开。 客户端会看到页面未找到错误或请求超时错误。并陷入困境,他还没有注册。 因此他再次按下刷新按钮。并且同一组数据(尽管已提交到database)已发送到服务器以进行数据库提交。 服务器将看到数据,并再次使用不同的id注册同一位客户。 所以问题就解决了。现在,同一客户条目已重复两次,原因是连接已断开。 现在有人可以告诉我如何进行这种情况。这样,即使客户提交了,即使响应被截断并按下了刷新按钮,他也只能识别一个条目并提交它?     
已邀请:
        想法: 1)您不想在每个请求上都创建NHibernate SessionFactory。应该创建一次,然后供以后的所有请求使用。这是一项繁重的操作。每个请求仅需要创建会话。 2)以高级方法管理事务-减少在提交事务之后但在客户做出响应之前发生问题的可能性。 3)通过使Submit函数返回另一个显示信息的页面,防止重新提交“ Refresh”方法。此页面不应提交任何内容。 4)通过根据先前提交的凭据验证提交,来防止重新提交服务器端。通知客户他们以前是否注册过,并为他们提供访问已保存详细信息的方法(例如,密码恢复)。 因此,例如,如果您的用户通过电子邮件地址键入密码,则在页面加载事件中执行以下步骤:     

要回复问题请先登录注册