2016-09-12 8 views
3

ローカルで実行すると、Microsoft Bot Framework Channel Emulatorで正常に動作するチャットボットを作成しました。Microsoft botはローカルでは動作しますが、公開されていない場合は動作しません。

しかし、私がTelegramでテストすると、エラー500が表示されます。「pbot2へのPOSTが失敗しました:HTTPステータス500でPOSTがボットのエンドポイントに失敗しました。

私はどこが間違っているかもしれないかについての手がかりは全くありません。通常はローカルでは動作しますが公開されていない場合は資格情報の問題ですが、Microsoft Bot Webサイトでボットとの接続をテストしました。エンドポイントの認証が成功しました。したがって、資格情報は間違いなく問題になります。

グーグルでは、問題はSystem.IdentityModel.Tokens.jwtの下位互換性に起因する結果が得られますが、問題ではないようにそのパッケージを更新しませんでした。

私はこの時点でアイデアがなくなったので、助けていただければ幸いです!前もって感謝します。

+0

httpsエンドポイントまたはhttpエンドポイントを使用しましたか? –

+0

httpsエンドポイントを使用しました。 Botフレームワークがこれを強制します。 – dmred

答えて

1

もう少し文脈がなければ、私はあまり役に立たないかもしれません。

1)ボットフレームワークポータルでアプリ洞察を利用すると、ボットから見た例外をアプリの洞察に記録します。月に最初の数百万回のトランザクションは、必要なデバッグ時間のために無料です。

2)500は内部サーバーエラーです。私はあなたのボットが "メッセージ"以外の他の活動タイプを取るように設定されていると思いますか?エミュレータでは自動的に表示されないチャンネルからconversationUpdateアクティビティメッセージが表示されます。

3)あなたのクラウドエンドポイントでエミュレータを指し示すことができ、チャットチャンネルの場合よりも多くの例外の詳細が得られることがあります。

あなたが見つけたものをお知らせください。

+0

また、私は500エラーを取得します。ちょうど "Hello World"チュートリアルに従ってください。私はエミュレータだけを使用していますが、紺碧のサイトのURLを指すと "500 InternalServerError {" message ":"エラーが発生しました "} - #1の詳細を教えてください - – BrainSlugs83

+0

ヒントありがとう、テストして、あなたに戻って – dmred

+0

RE:Application Insights; Azureポータルでは、Azure Application Insightsインスタンス(https:/)をプロビジョニングできます。このサービスには、ポータルを介してBotフレームワークに提供できる計測キーが用意されています(これは、/etc/init.d/init.sh)。編集ページ)。次に、分析できるように、インサイトインスタンスにイベントを送信します。 私はまだ書かれていないこれに関するブログ記事があります。 –

0

キャッチされない例外が発生しました。私がやっているのは、try ... catchでPostメソッドのすべてをPostController.csにラップし、例外がキャッチされたときに例外のMessageとStackTraceをチャットに送ります。通常、最初の数行には一般的なエラーの説明が含まれ、ほとんどの場合行番号が入ります。

catch (Exception ex) 
     { 
      string error = Emoji.Blush; 

      //for debugging in bot emulator, also output stack trace 
      if (activity.ChannelId == "emulator" 
       || activity.ChannelId == "facebook" //uncomment this line to get stack traces on facebook too 
       ) 
      { 
       error += ex.Message + ex.StackTrace; 
      } 

      //create response activity 
      Activity response = activity.CreateReply(error); 

      //post back to user 
      ConnectorClient connector = new ConnectorClient(new Uri(activity.ServiceUrl)); 
      await connector.Conversations.ReplyToActivityAsync(response); 

     } 
関連する問題