質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

Q&A

1回答

2207閲覧

C#で作ったボットをAzureに発行したが動かない

退会済みユーザー

退会済みユーザー

総合スコア0

C#

C#はマルチパラダイムプログラミング言語の1つで、命令形・宣言型・関数型・ジェネリック型・コンポーネント指向・オブジェクティブ指向のプログラミング開発すべてに対応しています。

Azure

Azureは、マイクロソフトのクラウド プラットフォームで、旧称は Windows Azureです。PaaSとIaaSを組み合わせることで、 コンピューティング・ストレージ・データ・ネットワーキング・アプリケーションなど多くの機能を持ちます。

0グッド

1クリップ

投稿2019/01/20 23:55

編集2019/01/25 06:24

以前の質問からまだ数日のうちですが、今一度お助けください。

先日はお力添えにより無事ボットを発行できたのですが、その後『WEBチャットでテスト』でテストしたところ、何度メッセージを送っても「送信できませんでした」となってしまいます。
Azureの『チャンネル』を確認すると、「There was an error sending this message to your bot: HTTP status code NotFound」というエラーメッセージが出ていました。
どうすれば実機でもボットが動くようになるでしょうか?

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="Azureで生成したアプリケーションのID" /> <add key="MicrosoftAppPassword" value="Azureで生成したアプリケーションのパスワード" /> </appSettings> <system.webServer> <handlers> <add name="aspNetCore" path="*" verb="*" modules="AspNetCoreModule" resourceType="Unspecified" /> </handlers> <aspNetCore processPath="dotnet" arguments=".\(slnファイル名).dll" stdoutLogEnabled="false" stdoutLogFile="\?\%home%\LogFiles\stdout" /> </system.webServer> </configuration>

このようになっています。

エミュレーターでは応答でき、これとは別の、BotFrameworkのテンプレートを使って作ったエコーボットでも動きませんでした。
『Bot Channels Registration』ではなく『WebAPP』で作ったリソースに発行してみましたが、やはり動きません。
ngrokはインストールしてありますが、使ってはいません。

ボットの発行は、主に下のサイトを参考にしています。
1.Visual Studio を使用して C# ボットをデプロイする
2.Azure Bot Serviceを使ってFAQBotを公開までの備忘録
3.Bot Framework V4で編集しやすいベースとなるボットを作成してAzureにデプロイ
(ただし3についてですが、ボットの発行時点でIDとパスワードを保存しているので、「Botにセキュリティ認証部分を追加」欄にある「「設定」のノードで、Microsoft App IDの「管理」を選択」という操作はしていません。
また、StartupファイルのConfigureServicesメソッドにAPP認証処理を書いていても書いていなくても、同じくボットは動きませんでした)

度々ですが、よろしくお願いします。

1/25
こちらのサイト(youtube)で、同じエラーに対処する動画を見つけました。参考にして『高度なツール』からKUDUを開いたのですが、動画ではwwwrootのフォルダにたくさんのファイルやフォルダがあったのに対し、私のボットには「hostingstart.html」しかありませんでした。

もしかしたら発行時にフォルダやファイルが抜けおちているのかもしれません。
どうすればいいでしょうか?

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答1

0

こんにちは。

お疲れ様です。

考えられる要因は複数ありますが、調べてみるとほとんどが
・アプリケーションの停止によりメッセージを受信できない
・ボットがメッセージを受信しても応答に失敗する
ということがわかりました。

Webチャット機能ですでに機能していないというようですので、ボットが動作しているかの確認はできていますでしょうか?
1.[概要] ウィンドウを開く
2.[Messaging endpoint](メッセージング エンドポイント) をコピーし、ブラウザーに貼り付け

・エンドポイントから、HTTPエラー405が返される場合
ボットが到達可能であり、ボットがメッセージに応答できていますので、ボットがタイムアウトしている
か、HTTP5xxエラーで失敗しているかを調べる必要があります。
・エンドポイントから "このサイトに到達できない" または "このページに到達できない"というエラーが返される場合
ボットが停止しているため、再デプロイする必要があります。

追記です。

<configuration> <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>

投稿2019/01/21 02:02

編集2019/01/23 00:54
poniponiponiki

総合スコア98

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

退会済みユーザー

退会済みユーザー

2019/01/21 02:34 編集

回答ありがとうございます。毎度お世話になります。 念のためお聞きしますが、概要というのはもちろん『ボットチャンネル登録』の、『Webチャットでテスト』などの欄があるリソースの概要ウィンドウですよね? メッセージングエンドポイントのURLを貼り付けましたところ、 The resource you are looking for has been removed, had its name changed, or is temporarily unavailable. という文字だけが表示されました。 翻訳してみると、「探しているリソースは削除されたか、名前が変更されたか、一時的に利用できません。」とのことらしいですが、私にはリソースを削除した覚えも名前を変更した覚えもありません。 しいて探すとすれば、ボット発行時にできる『APPサービス』の名前と『ボットチャンネル登録』の名前が違うことが、心当たりといえば心当たりでしょうか。 少し調べたところ、WebConfigファイルがAzureに登録されていないとこのようなエラーになるようですね。一応、Configファイルを作った上でデプロイしているので、登録はされていると思いたいのですが……
退会済みユーザー

退会済みユーザー

2019/01/21 03:55

いえいえ、こちらが心配性なだけですので。 それより、情報ありがとうございます。 試してみます。
poniponiponiki

2019/01/21 06:22

私が今度は今週業務が忙しくなるため、あまりお返事が返せませんがまた色々と改善策を探りますね。 いつも的確なアドバイスでなくすみません。 無理せず頑張ってください。
退会済みユーザー

退会済みユーザー

2019/01/22 23:13 編集

poniponiponiki様こそ、お仕事お疲れ様です。 インフルエンザなどが流行しているようですので、お体にお気を付け下さい。 ところで、このご紹介いただいたサイトにある「JSON」ファイルというのは、プロジェクトを作成したときにできる「appsettings.json」ファイルのことでよろしいのでしょうか? 何度か試したのですが、もしそうであれば、残念ながらご紹介いただいた方法ではWEBチャットが機能しませんでした。 プログラムにさほど詳しいわけでもなく、Azureを知ってからまだ半年と経っていない素人が手探りで色々なサイトを見ながら組み上げたものですから、どこかで噴飯ものの間違いをしているのかもしれません。例えば、.Configファイルの構成やAzureへの登録についてなどです。 何しろ参考にしたサイトによって「最初に選ぶプロジェクトの種類」や「インストールするNugetパッケージ」、「Bot Channels Registrationを使う際のボットの発行方法」もまちまちです。 例えば『Visual Studio を使用して C# ボットをデプロイする』ではアプリを登録するだけでボットとして使えそうですが、『Bot Framework V4で編集しやすいベースとなるボットを作成してAzureにデプロイ』ではその後ボットの再設定とSetupファイルの修正、再発行をしないといけなかったり。 そういったところで、何やらおかしなことをやっているのかもしれません。
poniponiponiki

2019/01/23 00:53 編集

おはようございます。 お返事が遅くなりました、申し訳ありません。 まず、JSONについてのご質問ですが、その認識で大丈夫です。 ですが、機能しなかったんですね。 私もまだプログラムを始めてそんなに経っていないペーペーです。 手探りでも動くものをなんとか作り出せていることだけでもすごいと単純な私は思ってしまいます。 さて、リソースの削除されているかも~というエラーについてですが、Webを追加する必要があるのかもしれません。 .configファイルをAzureディレクトリにコピーすればなんとかそのエラーは無くなるかも…? 一番最初の解答欄にコードを追記するので、上記のコードを使用してみてください。
退会済みユーザー

退会済みユーザー

2019/01/23 06:16 編集

お返事ありがとうございます。 ご提示いただいたコードを試してみましたが、やっぱり動きませんでした。
poniponiponiki

2019/01/24 02:49

またお返事が遅くなりました。 試していただいたんですね、ありがとうございました。 でもやはり動かなかったと…。 うーん、何が原因なのか。 >ただし3についてですが、ボットの発行時点でIDとパスワードを保存しているので、「Botにセキュリティ認証部分を追加」欄にある「「設定」のノードで、Microsoft App IDの「管理」を選択」という操作はしていません。 この箇所で管理を選択してみるとか…? あとは今一度、作成したときの方法を繰り返していただいて改めてチャットボットを作成してみるくらいしか思い浮かびませんでした…。 申し訳ないです。
退会済みユーザー

退会済みユーザー

2019/01/25 05:41

エラーページをF12で開いたら『Failed to load resource: the server responded with a status of 404 (Not Found)』と出たので、なんだかメッセージングエンドポイントが作成されていなさそうなんですよね……。 ともあれ、ありがとうございました。前の質問と併せてお世話になりました。 また何か思いついたことがありましたら、よろしくお願いします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問