2019年1月22日火曜日

Bot Framework v4で、App ServiceにデプロイするとInternalServerErrorが出る現象について

Bot Framework v4でEmulatorでは通常に動作するものの、App ServiceにデプロイしてアクセスするとInternalServerErrorが出ることがあります。

こちらの現象について、4.1.5のバージョンでは以下の対処にて解決できました。

1..botファイルの修正
Visual StudioでBotアプリのプロジェクトを開くとxxx.botというファイルがありますが、こちらのservicesのエントリを以下のように記述してください。本来はApp Serviceのアプリケーション設定でアプリケーションIDやパスワードを設定するはずなのですが、これがうまく動作していないようです。
  "services": [
    {
      "type": "endpoint",
      "appId": "<アプリID>",
      "appPassword": "<パスワード>",
      "endpoint": "https://<デプロイしたApp ServiceのURL>/api/messages",
      "id": "<ボットID>",
      "name": "production"
    },
    {
      "type": "endpoint",
      "appId": "",
      "appPassword": "",
      "endpoint": "http://localhost:3978/api/messages",
      "id": "2",
      "name": "development"
    }
   ],


2. ライブラリを以下で指定(これは細かいバージョンによって異なる可能性があります)
・ターゲットフレームワーク:.NET Core 2.1
・Microsoft.Bot.xxx -> 4.1.5
・Microsoft.AspNetCore、Microsoft.AspNetCore.All -> 2.1.6