Вебклиент использует класс System.Net.Connection как абстракцию сетевого соединения — в этом классе в фукнкции StartConnectionCallback есть такое
if (!this.m_Server.UseNagleAlgorithm)
{
socket.SetSocketOption(SocketOptionLevel.Tcp, SocketOptionName.Debug, 1);
}
Где — m_Server объект типа ServicePoint, у которого в конструкторе происходит инициализация:
this.m_UseNagleAlgorithm = ServicePointManager.UseNagleAlgorithm;
А ServicePointManager.UseNagleAlgorithm — вот он:
public static bool UseNagleAlgorithm
{
set
{
GetConfig();
s_NetConfig.useNagleAlgorithm = value;
}
}
И GetConfig:
s_NetConfig = (NetConfiguration) ConfigurationSettings.GetConfig("system.net/settings");
Короче говоря, делаете ServicePointManager.UseNagleAlgorithm = false, или можете экспериментировать с недокументированными секциями конфига (
http://support.microsoft.com/kb/810814).