#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 для просмотра журналов.