Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/276.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# ASP.NET:can';在执行(长时间)回发时,不要执行对同一程序的AJAX调用_C#_Asp.net_Iis - Fatal编程技术网

C# ASP.NET:can';在执行(长时间)回发时,不要执行对同一程序的AJAX调用

C# ASP.NET:can';在执行(长时间)回发时,不要执行对同一程序的AJAX调用,c#,asp.net,iis,C#,Asp.net,Iis,我的程序进行了一次长时间的回发,我在屏幕上显示了一些信息,它正在“工作”。现在我想用AJAX并行查询以更新该状态(例如,“20%完成…”) 然而,事实证明,在回发过程中,不会执行对任何webmethods的并行调用,这些调用会被延迟。因此Javascript进行了这些调用(不经常),但在整个回发结束之前,它们不会收到回复(这使得更新进度状态的整个尝试无法使用) 有没有办法使对IIS/ASP.NET应用程序的并行查询正常工作 我使用ASP.NET 4.0和Visual studio 2010以及开

我的程序进行了一次长时间的回发,我在屏幕上显示了一些信息,它正在“工作”。现在我想用AJAX并行查询以更新该状态(例如,“20%完成…”)

然而,事实证明,在回发过程中,不会执行对任何webmethods的并行调用,这些调用会被延迟。因此Javascript进行了这些调用(不经常),但在整个回发结束之前,它们不会收到回复(这使得更新进度状态的整个尝试无法使用)

有没有办法使对IIS/ASP.NET应用程序的并行查询正常工作

我使用ASP.NET 4.0和Visual studio 2010以及开发服务器组件


提前谢谢

我也很感兴趣,找到了下一个解释:

您不能在回发期间进行AJAX调用,这是因为在 回发页面在客户端中被销毁,包括回调 函数的AJAX调用,控件转到服务器获取 当控件返回到客户端时,客户端的新内容 一切都在那里重建,我想这是 正在进行AJAX调用


您可以考虑在这种操作中使用信号器。查看更多信息

这将允许您启动一个长流程,然后将此操作的进度发送回客户端

Scott Hanselman在他的博客上提供了一个如何做这类事情的工作示例。看这里


请注意,他的博客文章使用的是旧版本的SignalR,因此代码需要一些API更改才能使用最新版本。

另一种选择是使用AJAX调用而不是回发来启动流程。 因此,第一个调用将在服务器上的另一个线程上启动进程。下面的调用将只检查处理线程中某种共享变量的进度。该过程完成后,如果需要,可以进行回发以刷新页面上的数据