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

質問
-
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』を弄っていたら、エラーは消えたが別の問題ができた
回答
-
poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
Azure PortalでWeb App Botを作成すると、Web App BotとApp 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までお気軽にお問い合わせください。~- 編集済み Haruka6002Microsoft contingent staff, Moderator 2019年2月14日 0:59
- 回答としてマーク poorpoor 2019年2月26日 0:38
すべての返信
-
poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
MSDNフォーラムにご投稿くださいましてありがとうございます。
Azure PortalでWeb App Botを作成すると、Web App BotとApp 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までお気軽にお問い合わせください。~- 編集済み Haruka6002Microsoft contingent staff, Moderator 2019年2月14日 0:59
- 回答としてマーク poorpoor 2019年2月26日 0:38
-
-
poorpoorさん、こんにちは。フォーラムオペレーターのHarukaです。
ご返信頂きありがとうございます。
ボットをAzureにデプロイするときにngrokを設定する必要はありません。
しかし、.botファイルでアプリケーションのIDとパスワードを設定/更新する必要があります。どうぞよろしくお願いします。
MSDN/ TechNet Community Support Haruka
ご協力くださいますようお願いいたします。また、MSDNサポートに賛辞や苦情がある場合は、MSDNFSF@microsoft.comまでお気軽にお問い合わせください。~