2017-09-04 1 views
0

Ich habe durch den Prozess der Erlangung eines Authentifizierungs-Token debuggt, und ich bin in der Lage, eine Aktivität von einer Konsolenanwendung an eine benutzerdefinierte Connector Web API zu übergeben. Von dort muss ich die Aktivität an meinen Bot weitergeben, aber hier stoße ich auf ein Problem.Belastungstest mit Bot-Framework

Wenn ich meine Payload an meinen Bot-Service-Endpunkt (https://localhost:3979/api/messages) sende, erhalte ich einen 500-internen Service-Fehler. mit Postman, ich bin in der Lage den Bot-Dienst zu debuggen in und sieht, dass ich

Exception thrown: 'Microsoft.Rest.SerializationException' in mscorlib.dll 

nach dem Stack-Trace einen Fehler von immer bin, ich sehe „Unerwartete Zeichen beim Parsen ...“. Dies geschieht während des folgenden Anrufs.

await dialogContext.PostAsync("Testing 123"); 

Wenn ich die Payload nutze, die vom Emulator gesendet wird, funktioniert es ordnungsgemäß. Wenn ich jedoch ChannelId zu "test" und meine ServiceUrl zu meinem benutzerdefinierten Connector-Dienst ändere, erhalte ich den oben genannten Fehler.

Ich debugge alle Dienste lokal, um die Pipeline-Einrichtung ordnungsgemäß zu erhalten.

Benutzerdefinierte Connector Service-URL verwendet SSL (https).

Welches Teil des Puzzles vermisse ich?

+0

Haben Sie diesen Artikel über die Belastung Ihres Bot getestet? https://blog.botframework.com/2017/06/19/load-testing-a-bot/ – nilsw

+0

Ja, ist, wo ich den allgemeinen Rahmen von bekam. Es scheint jedoch, dass mein benutzerdefinierter Connector einige Implementierungen fehlen. Nach dem weiteren Debuggen sehe ich, dass PostAsync eine Post-Nachricht an den benutzerdefinierten Connector sendet. Irgendwelche Ideen, wo ich finden kann, was alles für den benutzerdefinierten Connector implementiert ist? – NiteLordz

Antwort

0

Das Problem, das ich hatte, war in einer der Antworten. Als ich einen ID-Wert zurücksandte, war er bereits codiert, aber als er den Apicontroller passierte, wurde er erneut codiert. Daher war das Bot-Framework nicht in der Lage, ihn richtig zu analysieren.

Anstatt eine Zeichenfolge von json (hartcodiert wie im Beispiel) zurückzusenden, habe ich ein ResourceResponse-Objekt aus dem Bot-Framework (https://docs.botframework.com/en-us/csharp/builder/sdkreference/de/df8/class_microsoft_1_1_bot_1_1_connector_1_1_resource_response.html) erstellt, das nur ein ID-Feld enthält, aber es wurde erwartet. Dadurch wurde mein Kommunikationsproblem vom benutzerdefinierten Connector zum Bot-Framework zum benutzerdefinierten Connector gelöst.