0
调用不同的线程外部Web服务这是当前功能:从Web服务
- 我的网站叫我的ASP.NET Web服务同步。
- 我的web服务在数据库中创建一条记录。
- 我的网络服务立即向网站返回新的记录ID。
- 我的网站向用户显示该记录ID。
这一直工作正常。我必须添加一项功能,以便在步骤2之后,我的Web服务将调用1到6(取决于条件)外部Web服务。所以它看起来像这样:
- 我的网站同步调用我的ASP.NET Web服务。
- 我的web服务在数据库中创建一条记录。
- 我的Web服务调用外部Web服务。合并结果并保存在数据库中。
- 我的网络服务向网站返回新的记录ID。
- 我的网站向用户显示该记录ID。
由于此新功能,现在网站请求可能需要10分钟。所以这就是我想要实现新功能的方式。
- 我的网站同步调用我的ASP.NET Web服务。
- 我的web服务在数据库中创建一条记录。
- 我的web服务创建一个新线程并在该线程上调用一个方法(fire and forget)。此方法将调用外部Web服务,合并结果并保存在数据库中。由于这将在另一个线程上,执行将在完成步骤3之前立即转到步骤4.
- 我的Web服务立即向网站返回新记录ID。
- 我的网站向用户显示该记录ID。
此外,我想为步骤3中创建的线程设置一些超时,以便任务必须在10分钟内结束,如果不中止线程。
我试过ThreadPool.QueueUserWorkItem,它甚至没有被调用,因为它是后台线程。最初线程/ Task.TaskFactory似乎是可行的,但为每个请求创建一个新线程似乎并不是最佳实践。
有人可以提供一些VB.NET代码/参考的步骤3?特别是在一个单独的线程上调用外部Web服务,如fire和forget,并为该线程设置超时值?
感谢
你有什么尝试?创建一个新的线程已经有很好的文档记录,并有大量代码示例。你有没有尝试过某些东西,并得到错误,或者... http:// mattgemmell。COM/2008/12/08 /什么具备的,你试了/ – David 2012-04-18 21:33:38