Telegram API CallBack + IIS

162
23 мая 2022, 01:30

UPD2 Установив на сервер tshark, поймал ошибку такую

38 282.396282475 91.108.6.58 → 192.168.1.98 TLSv1.2 992 [TCP Previous segment not captured] , Ignored Unknown Record При CallBack от ТГ.

Конец UPD2

UPD: Поднял ubuntu server, настроил nginx, получил сертификаты letsencrypt. Запустил приложение. Бот заработал, но опять CALLBACK не доходит до приложения. Делаю вывод, что проблема была не в IIS. Куда копать не понимаю. конец upd

Не могу развернуть бота на IIS.

Что имею:

.net core 3.1,

win server 2019 + iis

Написал код, для отладки использовал ngrok Tunell. Все устроило все работало в режиме отладки. Начал разворачивать на IIS. Установил SSL сертификат, настроил А запись. Бот запустился, заработал. На сообщения отвечает, до момента пока не начинается магия в виде CallBack вызовов, которые нужны для пролистывания галереи картинок.

Думал где то падает, добавил везде try/catch, где только можно. Не помогло. Решил сделать в лоб, просто ловить входящее сообщение и записывать его в файл.

[Route("api/message/update")]
    public class MessageController : Controller
    {        
        public Client client { get; set; }           
        [HttpGet]
        public string Get()
        {
            return "123";
        }  
        [HttpPost]
        
     
         public async Task<OkResult> Post([FromBody]Update update)
        {
            try
            {               
                var botClient = await Bot.GetBotClientAsync();
                Bot.MyLogger(("InputMessage " + update.Id); 
                if (update.CallbackQuery != null)
                {
                    try
                    {
                        var callbackQuery = update.CallbackQuery;
                        Bot.MyLogger("ExecuteCallbackMessage " + callbackQuery.Data);
                        await ExecuteCallbackMessage(callbackQuery, botClient);
                      
                        return Ok();
                    }
                    catch (Exception ex)
                    {
                        Bot.MyLogger(ex.Message);
                        var t = ex;
                        return Ok();
                    }
                }
                else if (update == null) return Ok();
                var message = update.Message;
                client = new Client();
                client.ChatId = (int)message.Chat.Id;
                await ExecuteCommand(message, botClient);
                return Ok();
            }
            catch (Exception ex)
            {
                Bot.MyLogger(ex.Message);
                return Ok();
            }
        }

При обычной отправке сообщения из ТГ на строчке

Bot.MyLogger(("InputMessage " + update.Id); 

происходит запись в файл следующего вида:

16.11.2020 20:13:21 InputMessage 417633691

Если делается CallBack вызов кнопки, то такое ощущение, что запрос не доходит вообще, потому что записи не делается никакой. Все бы хорошо, но в режиме отладки через ngrok - все работает как часы. Смотрел через WireShark - пакеты летят. Есть подозрение, что гонит сам IIS. Но почему - непонятно.

Answer 1

В общем спустя недели мучений я исправил это.

Дело было в значении MTU на роутере, которое было выставлено в размере 1500. Сменив значение на 1492 пакеты полетели нормально. Кто бы мог подумать...

Зато я поднял навыки в настройке nginx, повспоминал команды в терминале ubuntu. Научился стартовать приложения в линуксе, подымать их в качестве сервиса)))

upd

Стоит роутер zyxel keenetic II. После смены мту перестали открываться страницы в браузере. Проблема была в последней оф прошивке. Обновил её до не оф прошивки с 4пда. И все нормализовалось. Всем спасибо=)

READ ALSO
Проблема с определением &lt;Сколько пикселей до левого края страницы или верха&gt;

Проблема с определением <Сколько пикселей до левого края страницы или верха>

Знаю, есть getBoundingClientRectЭта штука даёт возможность определить расстояние до краёв на странице, относительно опорного тега

185
Как узнать кто вызвал функцию

Как узнать кто вызвал функцию

Хочу узнать из функции которую вызвали, кто именно её вызвал, и чтобы можно было обращаться к этой функции и к её prototype

161
Как берутся проекты для разработки

Как берутся проекты для разработки

К примеру клиент обратился ко мне и просит чтобы я добавил для его сайта некоей функциональности или что-то другое не важно, как именно происходит...

172
Валидация формы JavaScript

Валидация формы JavaScript

Хотел бы получить ваше мнение по моему коду

160