Ответы бота с лагом после определенного времени неиспользования

У меня есть постоянная проблема, которую я не мог решить.
Кажется, моя dll была выгружена из памяти через некоторое время.
Например, когда я не использую бота в течение 30 минут, а затем снова использую его, перед ответом требуется некоторое время, как если бы он был повторно развернут или dll больше не находился в ОЗУ и был перезагружен до ответа.
Есть ли способ исправить отставание, когда бот некоторое время не используется?

обновление: 01.03.17

Чтобы активировать опцию "Всегда включен", необходимо передать платное предложение. Поскольку я все еще там, разработчик, я не могу передать это предложение. Я нашел решение, чтобы сохранить моего бота в живом режиме, создав скрипт, который будет отправлять сообщения каждую минуту. Мой сценарий находится в C#, и когда я выполняю это, я получаю ошибку авторизации.

var authValue = new AuthenticationHeaderValue ("Basic", Convert.ToBase64String (Encoding.UTF8.GetBytes ($ "{MyMicrosoftAppId}: {MyMicrosoftAppPassword}")));

   var client = new HttpClient()
    {
        DefaultRequestHeaders = { Authorization = authValue }

    };

    var jsonObject = new Rootobject()
    {
      type = "message",
      id = "0a24ca1428074419a1679b37e0e3dd39",
      timestamp = DateTime.Now,
      serviceUrl = "http://localhost:9000/",
      channelId = "emulator",
      from = new From()
      {
          id = "2c1c7fa3",
          name = "User1"
      },
      conversation = new Conversation()
      {
          isGroup = false,
          id = "8a684db8",
          name = "Conv1"
      },
      recipient =   new Recipient()
      {
          id = "56800324",
          name = "Bot1"
      },
      text = "ping",
      attachments = new object[0],
      entities = new object[0]
    };

    var content = new StringContent(jsonObject.ToString(), Encoding.UTF8, "application/json");
    var result = client.PostAsync("http://emiko.azurewebsites.net/api/messages", content).Result;
    result.ToString();          

Но я получаю ошибку авторизации: StatusCode: 401, ReasonPhrase: "Unauthorized", Version: 1.1, Content: System.Net.Http.StreamContent...

Как правильно войти в систему на Боте и отправить сообщение на его URL ( http://emiko.azurewebsites.net/api/messages)

1 ответ

Как уже упоминалось в официальном документе о Always On:

По умолчанию веб-приложения выгружаются, если они простаивают в течение некоторого периода времени. Это позволяет системе экономить ресурсы. В базовом или стандартном режиме вы можете включить Always On, чтобы приложение постоянно загружалось. Если ваше приложение выполняет непрерывные веб-задания, вам следует включить Always On, иначе веб-задания могут работать ненадежно.

Чтобы активировать опцию "Всегда включен", необходимо передать платное предложение. Поскольку я все еще там, разработчик, я не могу передать это предложение.

Исходя из вашего сценария, я предположил, что вы можете периодически отправлять запросы, чтобы убедиться, что ваш сайт жив, вот несколько учебных пособий, на которые вы можете обратиться к ним ( tutorial1 и tutorial2).

Другие вопросы по тегам