Это не связано напрямую с Html Agility Pack, а скорее с базовым уровнем HTTP / сокета. Эта ошибка означает, что сервер не отправляет обратно правильную строку состояния HTTP.
Строка состояния определяется в HTTP RFC, доступном здесь: http://www.w3.org/Protocols/rfc2616/rfc2616-sec6.html
Цитирую:
Первая строка ответного сообщения
это строка состояния, состоящая из
версия протокола с последующим числовым
код состояния и связанный с ним текст
фраза, с каждым элементом, разделенным
SP персонажи. CR или LF не допускаются
за исключением последней последовательности CRLF.
Status-Line = HTTP-Version SP Status-Code SP Reason-Phrase CRLF
Вы можете добавить трассировки сокетов с полным шестнадцатеричным отчетом, чтобы проверить это:
<configuration>
<system.diagnostics>
<sources>
<source name="System.Net.Sockets" tracemode="includehex">
<listeners>
<add name="System.Net.Sockets" type="System.Diagnostics.TextWriterTraceListener" initializeData="SocketTrace.log" />
</listeners>
</source>
</sources>
<switches>
<add name="System.Net.Sockets" value="Verbose"/>
</switches>
<trace autoflush="true" />
</system.diagnostics>
</configuration>
Это создаст файл SocketTrace.log в текущем каталоге выполнения. Загляните туда, нарушение протокола должно быть видно. Вы можете разместить его здесь, если он не слишком большой: -)
К сожалению, если вы не являетесь владельцем сервера, вы мало что можете сделать (если вы уже добавили параметр useUnsafeHeaderParsing, что хорошо), но в этих случаях происходит изящная ошибка.