2016-12-07 3 views
1

Keine Berechtigung bei Verwendung von "Verbindung zu Ihrem Bot testen" im Bot-Framework-Portal.Bot Framework Authentifizierung funktioniert nicht

Ich habe hier eine Reihe von Fragen zum selben Thema gesehen, kann aber immer noch nicht so funktionieren, wie es sollte. Ich versuche, meine Endpunkt Genehmigung arbeitet, um sicherzustellen, aber ich erhalte immer Fehler ...

ich die Empfehlungen des Schreibens gefolgt: https://docs.botframework.com/en-us/support/troubleshooting-bot-framework-authentication/

Auf den ersten Fehler war;

InternalServerError 
{ 
"message": "An error has occurred.", 
"exceptionMessage": "Object reference not set to an instance of an object.", 
"exceptionType": "System.NullReferenceException", 
"stackTrace": " 

(etc ...)

Ich arbeitete heraus, dass ich brauchte, um meine azur Plan grundlegende Upgrade SSL aufzunehmen. Aber wenn ich jetzt meine Bot-Verbindung über das Bot-Framework-Portal teste, bekomme ich;

InternalServerError 
{ 
    "message": "An error has occurred." 
} 

Der Bot selbst funktioniert gut über Skype und Webchat - Es ist nur die Autorisierung Stück, das nicht funktionieren will.

Nach dem Link von der Web-App auf azurblau gehostet, beweist, dass ich eine HTTPS-Adresse habe. Das einzige, was ich nicht versucht habe, ist ein dediziertes SSL-Zertifikat für meine App zu kaufen.

Aber die grundlegenden Azure-Pläne enthalten SSL unter dem generischen Microsoft-Zertifikat? Irgendwelche Gedanken?

Ein letzter Teil der Info, der Webchat-Kanal für den Bot zeigt mir ständig das folgende Problem;

There was an error sending this message to your bot: HTTP status code 
InternalServerError 

Azure-Hosting, Web-App, b1 Basisplan ...

Antwort

1

einstellen Ok, ich habe es geschafft, dies durch einen Prozess der Beseitigung zu lösen. Der schlechte Code ist unter (von MessagesController.cs);

if (activity.Type == ActivityTypes.Message || activity != null) 

Während der Code glücklich ausgeführt wird, stolpert die Endpunktautorisierung, wenn sie trifft;

activity != null 

Daher, durch Zurücksetzen auf den folgenden Endpunkt funktioniert die Autorisierung;

Fragen Sie mich nicht, wie der Null-Check im Code war, weiß ich nicht! Oder warum die Berechtigung den Null-Check nicht mag ..

1

Haben Sie die appSettings richtig eingestellt?

<!-- update these with your BotId, Microsoft App Id and your Microsoft App Password--> 
<add key="BotId" value="YourBotId" /> 
<add key="MicrosoftAppId" value="YourAppId" /> 
<add key="MicrosoftAppPassword" value="YourAppPassword" /> 

Sie können diese aus dem die Bot Framework site erhalten, indem Sie Ihren Bot Details Bearbeitung

Auch Sie müssen kein eigenes SSL-Zertifikat für Ihre App kaufen. Sie müssen nur den Messaging-Endpunkt mit einer https-URL (https://foobot.azurewebsites.net/api/messages)

+0

Habe das alles schon gemacht ... Wenn ich direkt über einen Browser auf meine https-URL gehe (https: //xxxx.azurewebsites.net/api/messages), bekomme ich: Die angeforderte Ressource unterstützt http-Methode 'GET' nicht. Taylor

+0

@ Taylor Die andere Sache, die mir in den Sinn kommt ist, dass Sie nicht das [Serializable] -Tag in alle Ihre Dialoge setzen. – jcmontx

+0

Es ist definitiv in allen Dialogen, ich habe eine Reihe von unterstützenden Klassen .. DB-Zugriff usw. – Taylor

Verwandte Themen