这部分在做什么?特别是为什么它耗费时间,如果我没有ViewState和大对象图?它有时需要3倍的请求速度。
发现此问题,仅在开发服务器上。
答案 0 :(得分:0)
SaveStateComplete的作用是在呈现控件viewstate / controlstate之前保存它。因此,除非您为页面/控件禁用了viewsate(在页面级别为EnableViewState =“false”),否则作业始终完成。此外,禁用viewstate不会禁用controlstate。 你的页面上有很多控件吗?
答案 1 :(得分:0)
我也注意到即使没有ViewState,这个阶段相对比较昂贵(即使页面几乎空白)
通过在我的本地IIS实例上运行我的项目而不是在Visual Studio开发Web服务器上运行,我能够大大加快这个阶段的速度。在发布模式和调试模式下进行编译似乎也提供了微小的改进。
我的猜测是1)没有什么可担心的; 2)对于某些流程,VS Web服务器可能不如IIS优化。例如,IIS可能会缓存计算机值(例如注册表设置,证书等),而VS Web服务器可能不会。
如果在SaveStateComplete期间运行加密例程(例如EnableViewStateMac="true"
时),则在VS Web服务器上运行本地计算机资源的成本可能要高得多,即使实际上没有任何内容正在加密。
我不认为这是一个很好的答案;如果你真的担心,你可以分析ASP.NET以查看它实际上在做什么(例如,正在调用哪些BCL方法)。