2017-08-24 5 views
1

ボットフレームワークとLUISを使用して単純なコータナスキルを書いて配備し、すべて正常に動作しました。私のコードをAzureで更新した後、私のCortanaスキルがInternalServerErrorを表示します

私はコードを更新してAzureにアップロードしました。その後、を取得しました.Cortanaはスキルを開始しようとしました。その後、前のコードに戻りましたが、同じエラーが発生しました。

しかし、Bot Frameworkポータルのチャットウィンドウは両方のバージョンで正常に動作します。エミュレータも正常に動作します。

誰でも手助けできますか?前もって感謝します。

ここに詳細なエラーメッセージがあります。

{ 
    "error": { 
    "botId": "dumbot_carina", 
    "botRequest": { 
     "type": "message", 
     "id": "Dxu2FN06OUb", 
     "timestamp": "2017-08-24T10:11:57.8258747Z", 
     "serviceUrl": "https://CortanaBFChannelWestUS.azurewebsites.net/", 
     "channelId": "cortana", 
     "from": { 
     "id": "9057CB40B3D426035920CA7B7E2995332082556FE830F719B877D774D2790155" 
     }, 
     "conversation": { 
     "id": "46191e3e-57b6-48b2-b804-164d6afc3840" 
     }, 
     "recipient": { 
     "id": "dumbot_carina" 
     }, 
     "locale": "en-US", 
     "entities": [ 
     { 
      "type": "Intent", 
      "name": "Microsoft.Launch" 
     }, 
     { 
      "type": "DeviceInfo", 
      "supportsDisplay": "true" 
     } 
     ], 
     "channelData": { 
     "skillId": "abec8214-0a15-4e47-aa7a-37db6faf2cd3", 
     "skillProductId": "3c2f525c-1917-4f5f-8275-6173a37bb1ee", 
     "isDebug": true 
     } 
    }, 
    "error": "Bot service failed with status code: InternalServerError" 
    }, 
    "traceId": "0f0bb690-ee99-4c92-bf2e-067ff41dfa32" 
} 

答えて

1

私はそう、私は失敗する、それが動作する「dumbot何かを頼む」が、唯一「dumbotを頼む」と言うとき、その私のアプリは、空のメッセージを処理できないため、問題を発見しました。しかし、エミュレータとチャットウィンドウは空のメッセージを許可しないので、正常です。

known issues for Bot Framework Skillsのいずれかです。

LuisDialogスキル起動スキルが発話(すなわち「オープン」、「質問」)なしで起動され

に失敗し、activity.Text値はヌルです。 これがLuisDialogに渡されると、エラーが発生します。 にこれに対処するには、MessageRecievedメソッドをオーバーライドし、 ヌルチェックを以下のように追加します。

/// <summary> 
/// Need to override the LuisDialog.MessageReceived method so that we can detect when the user invokes the skill without 
/// specifying a phrase, for example: "Open Hotel Finder", or "Ask Hotel Finder". In these cases, the message received will be an empty string 
/// </summary> 
/// <param name="context"></param> 
/// <param name="item"></param> 
/// <returns></returns> 
protected override async Task MessageReceived(IDialogContext context, IAwaitable<IMessageActivity> item) 
{ 
    // Check for empty query 
    var message = await item; 
    if (string.isNullOrEmpty(message.Text)) 
    { 
     // Return the Help/Welcome 
     await Help(context, null); 
    } 
    else 
    { 
     await base.MessageReceived(context, item); 
    } 
} 
1

私はそれがウェブチャットとコルタナの両方のエラーを示しているdev portalであなたのボットを見ました。これらのエラーは一般的なもので、一般的に問題がボットのコードにあることを意味します。だからあなたのコードを見ることなくあなたを助けることは本当に難しいでしょう。 Emulatorでデバッグを試したか、ngrokを使用しましたか?

enter image description here

+0

私はエミュレータを試してみます。 – dontloo

+0

それはエミュレータでもうまく動作しますが、まだ私のコルタナはスキルを起動する問題を抱えています:/ – dontloo

+0

ああ、問題が見つかりました。私のアプリは空のメッセージを処理できないので、 "ask dumbot something"うまくいくでしょうが、 "ダンボールを尋ねる"だけが失敗します。 – dontloo

関連する問題