2017-09-09 3 views
1

Ich habe den folgenden Code, das gut funktioniert, wenn ich es meinem Git-Projekt synchronisieren und testen Sie es auf meine Azure Bot Instanz Kanal:LUIS-Code arbeitet in Kanal (iframe), aber nicht in Emulator

[LuisIntent("Greeting")] 
public async Task Greeting(IDialogContext context, LuisResult result) 
{ 
    string s = string.Empty; 
    string name = string.Empty; 

    var entities = new List<EntityRecommendation>(result.Entities); 
    if (entities.Any((entity) => entity.Type == "ClientName")) 
    { 
     var clientName = entities.Where((entity) => entity.Type == "ClientName").First(); 
     name = clientName.Entity; 
     s += "Your name is " + name; 
    } 
    else 
    { 
     s += "What is your name?"; 
    } 
    await context.PostAsync($"You gave a greeting. {s}"); 
    context.Wait(MessageReceived); 
} 

Aber wenn Ich starte es auf dem Emulator, ich bekomme "Sorry, mein Bot-Code hat ein Problem." mit dem folgenden Fehler:

A ScriptHost error has occurred Exception while executing function: Functions.messages. Microsoft.Bot.Builder: Value cannot be null. Parameter name: modelID.

Obendrein bekomme ich die Warnung:

Unable to find assembly 'Microsoft.Bot.Builder.resources, Version=3.9.0.0, Culture=en-US, PublicKeyToken=31bf3856ad364e35'. Are you missing a private assembly file?

Wie kann ich es auf meinem Emulator funktioniert? Ich würde es lieber in der Lage sein, es zuerst lokal zu testen, bevor ich es zu meiner Instanz dränge.

+0

Ich würde entfernen und das BotBuilder nugget-Paket –

+0

Hallo, Wie mache ich das? Es gibt keinen Nuget Package Manager in meiner Lösung. Ich habe den Code vom Azure-Portal heruntergeladen. Ich habe versucht, das Microsoft.Bot.Builder-Paket sowohl von project.json als auch von messages.csproj auskommentieren zu lassen, aber das hatte keine Auswirkungen auf mein Problem. – Oyen

Antwort

0

konnte ich vor Ort debuggen, indem hart meine Codierung LUISApiKey und LUISAppID. Ich habe diese Werte vom Portal> MyAzureBot> Einstellungen> Anwendungseinstellungen.

Sie haben an diesem Wochenende einige neue Änderungen vorgenommen - die aus dem Portal heruntergeladenen Bot-Service-Projekte sind nicht mehr CSX, sie sehen aus wie normale Web-Projekte, so dass der nuget-Paketmanager jetzt verwendbar ist. Aber es hat immer noch denselben Fehler, selbst wenn das nugget-Paket richtig installiert ist. Dieses Mal kann ich es deinstallieren und neu installieren und ich kann tatsächlich/bin Ordner sehen. Immer noch der gleiche Fehler mit dem Bot-Builder-Paket dort.

Ich möchte immer noch eine Nicht-Hack-Lösung. Aber dieses funktioniert jetzt gut.

Verwandte Themen