2013-05-08 59 views
0

因此,我的网络系统中出现了一种奇怪的情况。Ajax Call + ASP.NET + .NET Remoting

我有一个Windows服务的实现,启动一个.Net Remoting服务器,并保持等待各种客户端的调用。

另一方面,我有一个ASP.Net Web窗体应用程序,它可以使用.Net Remoting结构调用此服务中的某些方法。

在一个页面中,我有一个按钮,这个Button调用一个Ajax调用,并且这个Ajax调用,在Asp.Net Web窗体应用程序中执行一个异步方法。

一切工作正常。

但是,在完整的Ajax调用中,我有第二个异步调用。完成第一次Ajax调用后,第二次执行正常,但不立即,仅在3或4秒后执行。

它只发生在IIS中,在Visual Studio(localhost)中发布网站时,不会发生这种情况。

我可以将我的服务(服务器)配置为TCP或ICP,以二进制模式发送数据......对于任何配置,问题总是发生。

回答

0

几个月来,我在很多论坛和网站上发现了同样的问题,最后我得到了答案。

事实上,问题不在于AJAX调用或多个AJAX调用。问题发生是因为.NET Remoting的线程池和IIS线程池之间存在问题。

本网站在执行AJAX调用时会在服务器端进行一些计算。这些calc(用.NET Remoting执行)在txt文件中生成一些日志。

要生成这些日志,Windows需要将正常线程池e用于IIS限制。 IIS等待5秒钟以返回Windows线程池。因此,在这种情况下,存在两个线程池,一个用于Windows,另一个用于IIS。

删除日志生成,我可以在正确的时间执行该过程。有些人发现在ADO服务器端执行SQL查询的同样的问题。