Сохранение бота в живых

Мы создаем бота с использованием MS Bot Framework. Иногда, когда бот не используется, для ответа требуется слишком много времени, и мы получаем внутреннюю ошибку сервера [500]. Мы видим эту проблему, когда пытаемся получить доступ к боту в нашем приложении (мы используем Direct Line для взаимодействия с ботом).

Я читал другие ответы о том, как убедиться, что для параметра Microsoft Azure для активности приложений установлено значение «Всегда включено», и мы это сделали. Но поскольку Always on проверяет корень нашего веб-приложения для ботов, я думаю, что этого может быть недостаточно для поддержания активности бота / прямой линии ...

И у меня нет никаких правил перезаписи с http на https, препятствующих успешному выполнению запроса ping ..

У кого-нибудь была эта проблема?

ОБНОВЛЕНИЕ, чтобы задать конкретный вопрос: как мы можем убедиться, что наш бот ВСЕГДА жив, если все настройки, описанные выше, не работают? Должны ли мы пропинговать нашего бота через фреймворк прямой связи?


person ben    schedule 16.08.2017    source источник
comment
Не уверен, почему мой вопрос получил отрицательное голосование на -1 ... Должны ли мы указывать ссылку на каждую статью, которую мы просматривали, прежде чем задавать вопрос ??   -  person ben    schedule 16.08.2017
comment
Вы не задаете конкретный вопрос о конкретной проблеме и не показываете код или информацию, которые помогут решить вашу проблему. stackoverflow.com/help Не разрешено спрашивать, есть ли у кого-нибудь эта проблема. Не заставляйте нас гадать, что вы делаете.   -  person Rob    schedule 16.08.2017
comment
Хорошо, спасибо ! Я обновил свой вопрос вашей рекомендацией.   -  person ben    schedule 16.08.2017


Ответы (2)


Один из способов сделать это - отправлять пинг каждые 15 минут. Код по умолчанию даже дает вам место для обработки пинга в контроллере сообщений.

else if (message.Type == ActivityTypes.Ping)
{

}

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

person D4RKCIDE    schedule 16.08.2017
comment
Ссылка, на которую вы ссылаетесь, касается Always On, и мы уже реализовали это. Веб-сайт bot azure поддерживает эту функцию, но это не мешает боту перестать отвечать после периода бездействия ... - person ben; 17.08.2017
comment
И я считаю, что для отправки PING боту вам нужно поддерживать разговор ... Итак, вам нужно поддерживать активный разговор, чтобы иметь возможность делать это, что является проблемой, если вы хотите сделать это через Azure. Планировщик (например, функция Azure) - person ben; 17.08.2017

Мне пришлось создать лазурную функцию, которая проверяет мою службу, поскольку у меня была такая же проблема. У меня есть Always On для всех моих сервисов, но бот все равно засыпает. С помощью службы ping он устанавливает новый диалог, отправляет сообщение, а затем закрывается после получения ответа. Казалось, это сработало, но на практике это всего лишь неделя. Обратите внимание: я звоню каждые пять минут.

person NiteLordz    schedule 11.03.2018