Re: HttpWebRequest и NoDelay
От: nch  
Дата: 25.06.08 23:26
Оценка: 3 (1)
Вебклиент использует класс 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).
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.