/ / Bot arbeitet lokal, reagiert aber nicht auf den Bot-Dienst - node.js, azure, cloud, botframework, azure-bot-service

Bot arbeitet lokal, reagiert aber nicht auf den Bot-Dienst - node.js, azure, cloud, botframework, azure-bot-service

Ich habe einen Bot für die kontinuierliche Integration eingerichtetüber VSTS. Der Bot läuft auf einem App-Service-Plan (ich habe erst kürzlich herausgefunden, dass Consumption-Plan-Bots als Funktionen ausgeführt werden). Ich habe einen funktionierenden Bot in der Cloud unter Consumption, aber er begrenzt meine Erweiterungsmöglichkeiten.

Für diesen Bot habe ich eine Eingabeaufforderung sauber gepostetBot - aber der Versuch, es in der Cloud auszuführen, führte zu einem Dialogfehler. Also habe ich den Prompt-Code auskommentiert und ihn in einen Echo-Bot verwandelt. Es läuft immer noch gut lokal, aber keine Antwort vom Dienst. Ich habe versucht, mich bei einer Kudu-Konsole anzumelden und eine manuelle npm-Installation auszuführen, aber es half nicht. Der Versuch, den Bot in Kudu manuell auszuführen, führt zu einem fehlerhaften Anforderungsfehler.

Knotenversion 6.11.2. Die Dateistruktur enthält alle Dateien, die zum Zeitpunkt der Erstinstallation vom Bot-Service bereitgestellt wurden, einschließlich iisnode und web.config.

Hier ist meine app.js und package.json. Hat jemand sonst Probleme mit lokal gültigen Bots nicht auf Cloud-Bereitstellung reagieren? Irgendwelche Tricks, die ich nicht versucht habe?

UPDATE: Dieser Fehler wurde über den Azure-Protokolldatenstrom ausgelöst, weiß aber nicht, wie er behoben werden kann. Fehler: Anfrage an "https://state.botframework.com/v3/botstate/webchat/conversations/(snip)"fehlgeschlagen: [500] Interner Serverfehler bei Anfrage._callback

var dotenv = require("dotenv");
dotenv.load();
var restify = require("restify");
var builder = require("botbuilder");

// Setup Restify Server
var server = restify.createServer();
server.listen(process.env.port || process.env.PORT || 3978, function () {
console.log("%s listening to %s", server.name, server.url);
});

// Create chat connector for communicating with the Bot Framework Service
var connector = new builder.ChatConnector({
appId: process.env.MicrosoftAppId,
appPassword: process.env.MicrosoftAppPassword,
});

// Listen for messages from users
server.post("/api/messages", connector.listen());

var bot = new builder.UniversalBot(connector, function (session, args) {
console.log("Initialized the bot.");
session.send("You said: %s", session.message.text);
});

Paket.json:

{
"name": "heretohelp-app",
"version": "1.0.0",
"description": "Azure bot",
"main": "app.js",
"dependencies": {
"applicationinsights": "^0.21.0",
"botbuilder": "^3.9.1",
"botbuilder-azure": "^3.0.2",
"dotenv": "^4.0.0",
"restify": "^5.2.0"
},
"devDependencies": {
"request": "^2.81.0",
"zip-folder": "^1.0.0"
}
}

Antworten:

0 für die Antwort № 1

Es hat eine Menge Arbeit gekostet, aber als ich den Fehler gefunden habe, kam es zu einem Thread über ein Problem, das der Bot-Service letzte Woche mit der Prototyping-Zustandsumgebung hatte: https://github.com/Microsoft/BotBuilder/issues/3463

Ich fand ein paar Sackgassen, die versuchten, meinen eigenen staatlichen Speicher zu bekommen, aber dieser Artikel brachte mich schließlich zum Laufen: https://docs.microsoft.com/en-us/bot-framework/nodejs/bot-builder-nodejs-state-azure-table-storage

Azure-Speicherkonto erstellt, oben Artikel verwendetum das in deinen Bot zu legen. Bricht die Verbindung zum (anscheinend immer noch kaputten) Prototyping-Service für das staatliche Management. Sobald dieser Schritt abgeschlossen ist, funktioniert der Web-Chat.