我正在使用ASP.Net网络服务,我遇到了一个长时间运行过程的问题,需要大约5分钟才能完成,而且它已超时。为了解决这个问题,我能够将服务器web.config上的executionTimeout设置为10分钟,然后将Web Service对象上的.Timeout属性设置为大约9分钟。现在,我担心这可能导致其他一些网络服务电话在他们超时之前坐在那里10分钟而不是之前的90-100秒。我知道客户端的默认值是100秒,但不确定更新服务器的超时设置是否会影响这一点。
底线是 - 将服务器的超时设置更新为10分钟的长时间是否安全,并依赖客户端的默认超时,或者这最终会导致一些问题?
谢谢!
答案 0 :(得分:2)
网络不应该像这样工作。如果你有一个长时间运行的进程,你应该在一个新的线程中调用它并在页面在客户端完成加载后发布答案(通过回调或每隔x分钟查询服务器端以检查进程是否已完成)。这样可以避免超时,并且用户可以在用户友好的时间内获取页面(甚至不完整)。这很重要,因为如果用户没有在合理的时间内获取他们的页面,他们会不高兴并尝试重新加载页面(并且可能重新启动您的进程......)。