我创建了一个等待 ajax 的 asp.net 页面。我有一页创建需要 30 秒的东西。在每一步我都会更改一个会话值。
我有另一个 ajax 页面,返回用于显示创建百分比的会话值。但是,我不知道为什么,我的 ajax 页面等待我的第一页创建结束。所以我最后只能得到 100%。
也许是因为我使用的是 VS 开发服务器而不是 IIS 服务器。如果这是问题所在,我可以更改开发服务器的设置以进行异步执行吗?
或者是别的什么?
WebForms 不适合异步操作。
将 SignalR 添加到您的项目并使用集线器将状态数据推送回您的页面,以异步更新您正在运行的进程的当前状态。
我的博客文章“ A Guide to using ASP.Net SignalR with RadNotifications ”中介绍了执行此类异步通知的技术示例
不要使用 ASP.Net 会话状态来执行此操作。它周围有一个隐式的读取器/写入器锁,这意味着您的其他调用可能会阻塞,直到您的进程完成。您可以尝试将您的状态存储在数据库或缓存中,但重新设计交互可能会更好。