none
C#のボットをAzureに発行したが、メッセージの応答ができない RRS feed

  • 質問

  •  teratailにも『C#で作ったボットをAzureに発行したが動かない』というタイトルでほぼ同様の質問を投稿していますが、八方ふさがりに陥ったのでこちらでも質問させてください。

     Windows7SP1のパソコンとVisualStudio2017を使って、C#でボットを作っています。エミュレータでテストをし、動作が確認できたので発行して、MicrosoftDocumentを参考にAzureの「Bot Channels Registration」からボットの登録を行いました。

     しかし、Webチャットでテストをしても「送信できませんでした」というメッセージが流れるばかりで、『チャンネル』の最近の問題には『There was an error sending this message to your bot: HTTP status code NotFound』というエラーが表示されます。また、「~.azurewebsites.net/api/messages」のURLを入れると

    『The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.』と書かれた白背景のページが表示されます。

     youtubeの動画(https://www.youtube.com/watch?v=yFv9cLNBJ6c)を見て『高度なツール』からkuduを確認したところ、wwwrootに「hostingstart.html」なるファイルしかありませんでした。そこでCsファイルやbotファイルをアップロードしてみたのですが、やはり変わらずWEBチャットはできません。これは、Botの登録においては関係ないのでしょうか。

    長々と書きましたが、どうすれば正常にボットが応答するようになるでしょうか。

    お力をお貸しください。

     色々なサイトやサイトに投稿された質問を参考にして、Web.configファイルやAppsetting.jsonファイルは以下のようにしています。

    Web.config

    <?xml version="1.0" encoding="utf-8"?>
    <configuration>
    
      <appSettings>
        <!-- update these with your BotId, Microsoft App Id and your Microsoft App Password-->
        <add key="BotId" value="アプリ名" />
        <add key="MicrosoftAppId" value="アプリのID" />
        <add key="MicrosoftAppPassword" value="アプリのパスワード" />
      </appSettings>
    
      <system.webServer>
        <rewrite>
          <rules>
            <rule name="Main Rule" stopProcessing="true">
              <match url=".*" />
              <conditions logicalGrouping="MatchAll">
                <add input="{REQUEST_FILENAME}" matchType="IsFile" negate="true" />
                <add input="{REQUEST_FILENAME}" matchType="IsDirectory" negate="true" />
              </conditions>
              <action type="Rewrite" url="/" />
            </rule>
          </rules>
        </rewrite>
      </system.webServer>
    
    </configuration>

    appsettings.json

    {
      "Logging": {
        "LogLevel": {
          "Default": "Warning"
        }
      },
      "botFilePath": "./EchoBot.bot",
      "botFileSecret": "ボットのセレクトID",
      "AllowedHosts": "*"
    }

    EchoBot.bot

    {
      "name": "EchoBot",
      "description": "",
      "services": [
        {
          "type": "endpoint",
          "appId": "アプリのID",
          "appPassword": "アプリのパスワード",
          "endpoint": "https://アプリケーション名.azurewebsites.net/api/messages",
          "id": "345",
          "name": "production"
        }
      ],
      "padlock": "",
      "version": "2.0",
      "overrides": null,
      "path": "C:\\Users\\ボットのローカルパス\\EchoBot.bot"
    }



    • 編集済み poorpoor 2019年1月31日 8:02 何とかメッセージングエンドポイントのエラーを消せないか『hostingstart.html』を弄っていたら、エラーは消えたが別の問題ができた
    2019年1月31日 2:48

回答

  • poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    Azure PortalでWeb App Botを作成すると、Web App BotApp Serviceなどのリソース(下記のように)が作成されます。
    ボットアプリケーションを対応するApp Serviceに展開して、ボットがうまく動作できるかどうかをテストできます。

    また、[このドキュメント] (https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tutorial-basic-deploy?view=azure-bot-service-4.0&tabs=csharp) を参照して、
    ボットアプリケーションを azure に公開することもできます。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
    2019年2月14日 0:58
    モデレータ

すべての返信

  • poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
    MSDNフォーラムにご投稿くださいましてありがとうございます。

    Azure PortalでWeb App Botを作成すると、Web App BotApp Serviceなどのリソース(下記のように)が作成されます。
    ボットアプリケーションを対応するApp Serviceに展開して、ボットがうまく動作できるかどうかをテストできます。

    また、[このドキュメント] (https://docs.microsoft.com/en-us/azure/bot-service/bot-builder-tutorial-basic-deploy?view=azure-bot-service-4.0&tabs=csharp) を参照して、
    ボットアプリケーションを azure に公開することもできます。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
    2019年2月14日 0:58
    モデレータ
  • だいぶ間が空いてしまいましたが、お返事ありがとうございます。

    試す前にいくつか質問があります。

    ご提示いただいたドキュメントにも有りますが、作成したボットをパソコンからAzureにデプロイするとき、CLIからデプロイするかBot Channels Registrationで作ったアプリにボットを登録するかに関わらずngrokの設定は必須なのでしょうか? また、.botファイルにアプリケーションのIDとパスワードを登録し、appsetting.jsonに.botのシークレットキーを入れることも、やはり重要ですか?


    よろしくお願いいたします。

    2019年2月20日 4:35
  • poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
    ご返信頂きありがとうございます。

    ボットをAzureにデプロイするときにngrokを設定する必要はありません。 
    しかし、.botファイルでアプリケーションのIDとパスワードを設定/更新する必要があります。

    どうぞよろしくお願いします。


    MSDN/ TechNet Community Support Haruka

    ~参考になった投稿には「回答としてマーク」をご設定ください。なかった場合は「回答としてマークされていない」も設定できます。同じ問題で後から参照した方が、情報を見つけやすくなりますので、
    ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~
    • 回答としてマーク poorpoor 2019年2月26日 0:38
    • 回答としてマークされていない poorpoor 2019年2月26日 0:38
    2019年2月22日 2:42
    モデレータ
  • ありがとうございます。色々試してやってみます。
    2019年2月26日 0:38