Как использовать моего чат-бота на .NET Core для предоставления ответов на основе запросов к базе данных SQL Azure?

#c# #azure #asp.net-core #azure-sql-database #botframework

#c# #azure #asp.net-core #azure-sql-database #botframework

Вопрос:

Я могу подключиться к базе данных SQL Azure и запросить ее через своего чат-бота в эмуляторе Bot Framework, однако, когда я развертываю его в azure, он вообще не работает.

Я создал чат-бота и использовал шаблон Microsoft Enterprise Bot в качестве отправной точки.

Мне удалось подключить его к моей собственной базе знаний и модели luis, и я также отлично распределяю их между ними. Мне также удалось включить аутентификацию пользователя и MS flows.

Я сразу же развернул его в Azure, и все функции и диалоги работали в веб-чате на портале.

Теперь я также создал базу данных sql, размещенную в Azure, и запрашиваю ее через чат-бота. Я подключаюсь к базе данных, как показано ниже:

     public DataRow[] GetAllValues()
    {
        DataTable Library = new DataTable();
        DataRow[] foundRows;

        using (var connection = new SqlConnection(
          "Server=tcp:<MY_SERVER_NAME>,1433;"  
          "Database=<MY_DATABASE>;User ID=<My_USERNAME>;"  
          "Password=<MY_PASSWORD>;Encrypt=True;"  
          "TrustServerCertificate=False;Connection Timeout=30;"
          ))
        {
            connection.Open();

            using (var command = new SqlCommand())
            {
                command.Connection = connection;
                command.CommandType = CommandType.Text;
                command.CommandText = $"SELECT * FROM <MY_TABLE>";
                SqlDataAdapter da = new SqlDataAdapter(command);
                da.Fill(Library);

                foundRows = Library.Select();

                return foundRows;
            }
        }
    }
  

Все функции этого работают, когда я тестирую его на эмуляторе, и он отвечает именно так, как я хочу.

Однако, когда я развертываю его в azure, бот больше не работает ни в каком виде, даже карточка приветствия больше не появляется.

Это единственное место в моем коде, где я ссылаюсь на подключение к базе данных, нужно ли мне ссылаться на это где-то еще, или есть другая проблема?

Ответ №1:

Я предполагаю, что это новый бот для веб-приложений, который вы развернули в Azure. При первом развертывании возникает пара распространенных проблем.

Сначала убедитесь, что вы удалили дополнительные файлы в Azure. Это должно быть опцией в вашем профиле публикации. введите описание изображения здесь

Во-вторых, я бы удалил настройки приложения на портале Azure, ссылающиеся на путь к файлу бота, секрет и другие, которые вы настроили в себе appsettings.json .

Комментарии:

1. Это было, когда я впервые его развернул, да. Однако он отлично работал, когда я впервые его развернул, и после нескольких повторных публикаций после этого. Только сейчас, когда я добавил вышеуказанное для подключения к базе данных, это не работает.

2. И вы разрешаете доступ к службам Azure на сервере SQL Azure? Это должно быть включено по умолчанию.

3. Да, я разрешаю доступ

4. Test in Web-Chat Все еще работает? Или это сбой сейчас.

5. Тест в веб-чате теперь не выполняется

Ответ №2:

После подтверждения правильности ваших microsoft appid, microsoftapppassword, вы можете попробовать отладить код локально, но используя реальный канал (тестирование в веб-чате, командах и т.д.) С помощью NGrok. Если это работает, а повторная публикация не работает, то воспользуйтесь разделом каналы на портале, чтобы посмотреть, можете ли вы определить какие-либо проблемы в столбце «работоспособность». Кроме того, вы можете добавить stdoutLogEnabled=»true» в свой файл конфигурации, а затем использовать Kudu для просмотра журналов.