LUIS代码在通道(iframe)中工作但在模拟器

时间:2017-09-09 05:20:46

标签: c# luis azure-bot-service

我有以下代码,当我将它同步到我的Git项目并在我的Azure Bot实例频道上测试时效果很好:

[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);
}

但是当我在模拟器上运行它时,我得到了#34;抱歉,我的机器人代码存在问题。&#34;出现以下错误:

  

发生了ScriptHost错误   执行函数时出现异常:Functions.messages。 Microsoft.Bot.Builder:   值不能为空。   参数名称:modelID。

最重要的是,我收到警告:

  

无法找到程序集&#39; Microsoft.Bot.Builder.resources,Version = 3.9.0.0,   Culture = en-US,PublicKeyToken = 31bf3856ad364e35&#39;。你错过了私人吗?   汇编文件?

如何在模拟器上运行?在将其推送到我的实例之前,我宁愿能够先在本地测试它。

1 个答案:

答案 0 :(得分:0)

我能够通过硬编码我的 LUISApiKey LUISAppID 进行本地调试。我从门户网站获取了这些值&gt; MyAzureBot&gt;设置&gt;应用程序设置。

他们在本周末推出了一些新的变化 - 从门户网站下载的Bot服务项目不再是CSX,它们看起来像普通的Web项目,因此nuget包管理器现在可以使用了。但即使正确安装了nuget包,它仍然会出现同样的错误。这次我可以卸载并重新安装它,我实际上可以看到/ bin文件夹。那里的Bot Builder包仍然存在同样的错误。

我仍然想要一个非黑客解决方案。但是这个目前运作良好。