2015-10-13 5 views
0

В C# 5 и winform я использовал библиотеку, созданную Telegram Company. В этой библиотеке есть функция SendDocument(UserId,DocumentStream). Я знаю, что в этой функции они использовали HttpWebRequest, а свойство Timeout этого не обрабатывается. потому что иногда он не может отправлять большие документы и после точных 100 секунд (по умолчанию тайм-аут в DotNet) функция генерирует исключение The task was canceled.Отрегулируйте время ожидания HttpRequst перед созданием любого HttpWebRequest

Из документа Телеграмма компании, мы можем послать 50 MB файлы и мои файлы примеров около 15 МБ.

Хорошо, теперь я хочу, чтобы настроить время ожидания всех HttpWebRequest моего сервера, но у меня нет никаких возможностей для этого.

Могу ли я изменить все HttpWebRequest.Timeout свойство в моем сервере ??

ответ

2

Это не имеет прямого отношения к вашему вопросу, но может помочь вам облегчить ваш разум.

Мой совет: Не утруждайтесь настройкой тайм-аута. Это вряд ли поможет. Вот то, что я пережил:

Я пытался загрузить 20M mp4 видео файл, используя Телеграмма Bot API. Из малины Pi потребовалось 5 минут, после чего вернулась ошибка 504 Gateway-Timeout. С хост-сервера это заняло 1 минуту, а затем вернулось 504 ошибка Gateway-Timeout. В обоих случаях, однако, видео в конечном итоге достигло получателя через 5 минут. Таким образом, загрузка показалась несколько успешной, но не совсем успешной.

Я попытался решить проблему, выполнив загрузку. Такая же проблема сохранилась.

Я попытался настроить параметр таймаута HTTP. Такая же проблема сохранилась.

Я пытался использовать CURL, чтобы сделать запрос (вместо того, чтобы использовать telepot, Питон библиотеку я автор). Такая же проблема сохранилась.

Я подозреваю, что проблема заключается в серверах Телеграммы, так что я разговаривал с Bot поддержки. Однажды они вернулись ко мне, сказав, что сделали некоторые улучшения и спросили, есть ли у меня такая же проблема. Но такая же проблема все еще сохраняется.

Итак, похоже, проблема связана с серверами Telegram. Это не ваш код.

+0

Это означает, что они сделали это с целью? Слабый API. – Eftekhari