我们正在使用DotNetNuke作为框架开发Web应用程序,并使用我们的自定义模块来实现所需的功能。问题是,当您对代码进行任何更改时,网站需要花费很长时间才能加载。每次重启都要看1分钟,这真的很慢。这导致了非常缓慢的开发 - 重建 - 测试周期。
我们正在使用控制台项目和winforms项目作为新功能的试验场,以加快开发速度,但仍有很多UI功能必须通过浏览器完成。
有没有人有关于如何加速/阻止在网络应用的bin文件夹中发生更改时发生的appdomain重启的提示?
答案 0 :(得分:1)
DNN会在您添加/更改页面时按需编译,如果您预先编译它们,您的周转时间应该快得多。
答案 1 :(得分:1)
当与大型网络应用程序一起使用时,你遇到了ASP.NET的缺点。
DotNetNuke有许多重要的DLL和VB文件,如果您所做的只是更改一个DLL,则必须重新处理这些文件。如果您的bin中有50个模块DLL,则在您下一个应用程序请求时,ASP.Net将对所有50个模块DLL进行重新处理。
这是我的建议:
将以下文件夹连接到源代码管理器(而不是整个DNN文件夹):
当您的某个开发人员需要重复编译/页面加载时,他将通过尽可能多地消除bin文件夹中的DLL来获益。如果可以的话,它也可以帮助使用准系统皮肤进行测试(它们很容易制作)。
准系统皮肤(最多应使用1或2个皮肤对象)和DLL的绝对最小值(DNN Core +您自己的最低限度)将为您提供最佳的开发速度。
当您的开发人员完成一个模块的重点开发时,他可以更新从源代码控制中删除项目的文件夹(此处为svn),在完整DLL /外观集的上下文中完成对其代码的测试,以及他会定的。
有时值得麻烦。我无法让你进行几秒钟的ASP.NET重新处理,但我可以让你降低到10-15秒。 (假设你在SSD上运行)
在重新开始生产时,请确保您的APP池在非工作时间内重复使用。
我已经研究过多核设置是否能以某种方式减少这个重新处理时间,但是没有运气(我在服务器故障上有一个未解决的问题)
答案 2 :(得分:0)
也许这会对你有帮助吗?