0

我不确定标题听起来是否正确,所以我将在这里给出更多解释。我将从头开始:)

我正在使用 c# 和 .net 进行开发。

我有一个应用程序向一些肥皂网络服务发出请求,对于每个用户请求,它都会产生 3 到 10 个网络服务请求,它们都应该运行异步以一次性完成,所以我使用网络服务的异步方法生成参考,然后等待回调结果。但似乎它为我进行的每个异步调用启动一个线程(或从池中获取它),所以如果我有 10 个客户端,我必须生成 30 到 100 个线程,即使对于我的 16 核服务器来说听起来也很糟糕 :) 所以我想用我自己的替换低级传输实现,它使用非阻塞套接字,并且可以处理至少 50 个套接字在一个线程中并行运行而开销不大。但我实际上不知道把我的覆盖放在哪里最好。

我分析System.Web.Services.Protocols.SoapHttpClientProtocol了类,发现它有一些我实际上可以使用的 GetWebRequest 方法。如果我能以某种方式中断它创建的对象并从那里获取包含所有标头和正文的 http 请求,然后使用我自己的套接字发送它。

任何想法使用什么方法?或者也许我可以使用框架中内置的东西?

4

1 回答 1

0

您是否考虑过使用 .NET WCF 而不是 .NET 2.0 Web 服务?与 .NET 2.0 Web 服务相比,.NET WCF 在传输选项方面具有更大的灵活性。它有一个逐步学习曲线,但它非常值得。有关传输选项的更多详细信息,请查看WCF 传输选项在 MSN 频道 9 中,您可以找到一些很好的教程视频

于 2010-03-14T09:08:01.150 回答