Asp.net ISessionFactory在应用程序池回收后重新创建

Asp.net ISessionFactory在应用程序池回收后重新创建,asp.net,nhibernate,iis,application-pool,Asp.net,Nhibernate,Iis,Application Pool,我的共享主机提供商每3分钟为空闲设置一次IIS回收应用程序池。 因此,我的会话工厂经常(在应用程序启动时)重新创建。由于我有大约70-100个实体,构建工厂大约需要2-5秒。所以我申请的冷启动时间相当长。我无法访问IIS设置。您无能为力。应用池回收关闭你的应用 我想你可以让应用程序每隔2:45做一些事情来愚弄回收商。你做不了多少。应用池回收关闭你的应用 我想你可以让应用程序每2:45做一件事来愚弄回收商。如果你处于完全信任的环境中(值得怀疑,但提供商可能愿意与你合作),你可以尝试序列化你的配置,

我的共享主机提供商每3分钟为空闲设置一次IIS回收应用程序池。
因此,我的会话工厂经常(在应用程序启动时)重新创建。由于我有大约70-100个实体,构建工厂大约需要2-5秒。所以我申请的冷启动时间相当长。我无法访问IIS设置。

您无能为力。应用池回收关闭你的应用


我想你可以让应用程序每隔2:45做一些事情来愚弄回收商。

你做不了多少。应用池回收关闭你的应用


我想你可以让应用程序每2:45做一件事来愚弄回收商。

如果你处于完全信任的环境中(值得怀疑,但提供商可能愿意与你合作),你可以尝试序列化你的配置,这样就不必每次都重新构建。将所有实体映射合并到单个XML文档中也会有所帮助(只需在构建步骤中执行此操作,这样就不会成为处理映射的噩梦)


此处的更多信息:

如果您处于完全信任的环境中(值得怀疑,但提供商可能愿意就此与您合作),您可以尝试序列化配置,这样就不必每次都重新构建配置。将所有实体映射合并到单个XML文档中也会有所帮助(只需在构建步骤中执行此操作,这样就不会成为处理映射的噩梦)


更多信息请点击此处:

您是否尝试过首先阻止站点闲置?我使用的是免费的,每5分钟ping一次你的站点。此服务的好处是,它只请求您设置为监视器的页面的标题,因此不会影响日志记录(如Google Analytics)


不过,他说,你需要对此进行测试,看看你的应用程序何时确实可以回收,看看正常运行时间机器人是否能与你的共享主机提供商一起工作。最好的方法是每次重新构建会话工厂时都进行日志记录。

您是否尝试过首先阻止站点处于空闲状态?我使用的是免费的,每5分钟ping一次你的站点。此服务的好处是,它只请求您设置为监视器的页面的标题,因此不会影响日志记录(如Google Analytics)


不过,他说,你需要对此进行测试,看看你的应用程序何时确实可以回收,看看正常运行时间机器人是否能与你的共享主机提供商一起工作。最好的方法是在每次重新构建会话工厂时进行日志记录。

您可以通过在构建时而不是运行时生成代理来抵消设置工厂的大量成本。解释如何执行的步骤

现实一点,最简单的更改是要求应用程序池不要如此频繁地回收(因为这对应用程序来说是一项昂贵的操作)。我确信他们已经将超时设置为“性能”设置得非常低,但实际上这是在生成工作并降低速度


您可能无法直接访问IIS设置,但这不应阻止您联系供应商的技术支持并解决问题。

您可以通过在构建时而不是运行时生成代理来抵消设置工厂的大量成本。解释如何执行的步骤

现实一点,最简单的更改是要求应用程序池不要如此频繁地回收(因为这对应用程序来说是一项昂贵的操作)。我确信他们已经将超时设置为“性能”设置得非常低,但实际上这是在生成工作并降低速度


您可能无法直接访问IIS设置,但这不应阻止您与供应商的技术支持联系并解决问题。

这在中等信任环境中有效吗?3.2兼容吗?只是好奇而已……IIRC,如果您想在中等信任环境中使用延迟加载,那么需要预生成代理。所以它应该可以工作:)它需要我提供2.0版:(.我的NHIb是3.2版的,在一个中等信任的环境中可以工作吗?它是否兼容3.2版?只是好奇而已……IIRC,如果你想在中等信任的环境中使用延迟加载,就需要预生成代理。所以它应该可以工作:)它需要我提供2.0版:(.我的NHIb的服务时间是3.2秒。我可以设置一段时间吗。例如到2:30吗?不,但想知道你为什么要这样做?这项服务每5分钟ping一次你的站点,并在站点关闭时发送警报。我的空闲超时时间是3分钟,所以我需要每3分钟点击一次哦,我明白了,我想你是指一天中的2:30,而不是2.5分钟的间隔。3分钟是一个非常低的时间间隔。)dle超时,所以你的主机提供商不是一个好的…我怀疑正常运行时间机器人在这里不会帮你,因为它是5分钟的间隔,我不认为你想写你自己的。我个人认为NHibernate和你的主机提供商不适合你。谢谢服务。我可以设置时间。例如到2:30吗?不,但想知道你为什么这么做想要吗?这项服务每5分钟ping一次你的站点,如果站点关闭,就会发送警报。我的空闲超时是3分钟,所以我需要每3分钟点击一次。哦,我明白了,我想你指的是一天中的2:30,而不是2.5分钟的间隔。3分钟是一个非常低的空闲超时,所以你的主机提供商不是一个好的提供商……我怀疑正常运行时间机器人在这里也帮不了你这是5分钟的间隔,我不认为你想写你自己的。我个人认为NHibernate和你的主机提供商不适合你。