web-dev-qa-db-ja.com

Bot Framework Channel Emulatorでエラーを「500内部サーバーエラー」として解決するにはどうすればよいですか?

私はボットフレームワークテクノロジーに取り組んでいます。最近、マイクロソフトはボットの新しいバージョン(V3)を発表しました。私はすでに古いバージョンを使用してボットを開発していましたが、今はボットを新しいバージョンにアップグレードしようとしています。そのため、すべてが正常に機能していますが、ボットをAzureに公開した後、公開URLを使用して、ボットフレームワークチャネルエミュレーター(3.0.0.54)でテストしようとすると、常に「500、内部サーバーエラー」が発生します。しかし、ボットにSkypeチャネルを追加すると、正常に機能します。

唯一の問題は、ボットアプリケーションの公開URLを使用してボットフレームワークチャネルエミュレーターでテストしているときに、「内部サーバーエラー」としてエラーが発生したことだけです。

最新バージョンのボットフレームワークチャネルエミュレーターに問題があると思います

7
Pradeep
  • https://ngrok.com/download からファイルをダウンロードしてください

  • ファイルを解凍し、コマンドプロンプトを使用して以下のコマンドを実行します

ngrok http -Host-header = rewrite 9000

スクリーンショット

  • スクリーンショットのコピーに見られるようにhttpsでURLを転送し、エミュレータのURLに貼り付けます
  • エミュレーターポートは9000であり、エミュレーターURLにはngrok転送HttpsURLが含まれている必要があります

注:ngrokは実行状態になっている必要があります。次回の試行中に同じ500エラーが発生する場合は、手順1から開始してください。詳細については、.https // docs.botframework.com/en-us/tools/bot-framework-emulator/#navtitle

4

コントローラーのPost以外の単一のpublicメソッドにより、BotFrameworkが500InternalServerErrorをスローすることを発見しました。コントローラにprivateとpublic Postメソッドのみを保持するだけで、修正されるはずです。

2
Kevin

ngrokソリューションは私には機能しませんでした。 botAuthenticationにコメントしたところ、ローカルで機能しました。

  //[BotAuthentication]
    public class MessagesController : ApiController
    {
1
Vikram

デバッグ中は、appidとパスワードを無効にせず、空白にして同じものを再構築します。エミュレーターを介してデバッグできます。以下のように保持します。

BotId、AppID、Passwordを無効にするだけでなく、以下のように空白にします。

<add key="BotId" value="" />
<add key="MicrosoftAppId" value="" />
<add key="MicrosoftAppPassword" value="" />

ボットをクラウドにデプロイし、エミュレーターからテストしようとすると、このエラーが発生するようです。エミュレータは2つのケースで機能するようでした:

1-セキュリティが無効になっているローカルホスト(appidとapp passwordを削除します)

2-セキュリティが有効になっているローカルホスト(appidとapp passwordを追加)

ローカルホストであるという理由だけで、http経由の両方のエンドポイント。クラウドにデプロイする場合は、ボットポータルで利用可能なエミュレーターでテストできます。ホストされているボットのエンドポイントがhttps対応になっていることを確認してください。

このトラブルシューティングガイドの手順に従って、修正しました: https://docs.Microsoft.com/en-us/bot-framework/troubleshoot-authentication-problems

しかし、実際に何が問題を引き起こしたのか理解できませんでした。私が気付いたのは、デスクトップエミュレーターはローカルホストでのみ機能するということでした。

0
Rami Sarieddine

開発者は このスレッド に回答を投稿しました。

基本的に、「disable」と入力してAppId/AppPasswordを無効にすることができます

0

彼らは、3.0.0で導入されたいくつかの問題に対処するフレームワークの更新バージョン(3.0.1)をリリースしたばかりです。 3.0.1にアップデートしてみて、それで問題が解決するかどうかを確認してください(私の問題は修正されました)。 ソース

このチュートリアル に従い、ngrokを使用して、エミュレーターから公開されたチャットボットにアクセスできるようにする必要がある場合もあります。そのチュートリアルには、エミュレーターで使用されているBotIdを示すスクリーンショットがありますが、必須ではないため、省略できます。

0
pl0x