我有一个 WebMethod,用于在初始加载后将一些 HTML 返回到页面中。该方法通过 jQuery 的 ajax 方法调用。
一切正常,但是,从这些调用加载请求状态时存在相当严重的性能问题。随着流量的增加,CPU 使用率会达到最大值,实际上会扼杀整个站点的响应能力。
使用一个分析器,System.Web.Handlers.ScriptModule.OnPostAcquireRequestState()被称为罪魁祸首,几乎 100% 的调用持续时间。
另一个分析器调用System.Web.HttpApplication.System.Web.IHttpAsyncHandler.BeginProcessRequest(HttpContext context, AsyncCallback cb, object extraData)。
因此,我可以通过负载测试在本地重现该行为,但是对于库中的罪魁祸首,我不知道如何解决它。是否有任何“陷阱”会导致上下文恢复成本高昂?我可以简单地从 WebMethod 中删除上下文吗?