事象
AzureWebAppsでFTPホストに接続してファイルアップロードとかしてたんだけどまた別のFTPホストに接続しようとしても前のFTPホストに接続してしまう
違うサブスクリプションで作ったWebAppsだけどFTPホスト名一緒なのね…そういうもんか?
初回の接続時にはFTPユーザとパスワード聞いてきたんだけど聞いてくれないので切り替えできん。
多分FTPログオン情報みたいなのが残ってるんだと想像。
別にエクスプローラ使わなければいい話だけど気持ち悪いし。
以下で解消したのでメモ。
対処方法
レジストリエディタ起動
FTPアカウント情報確認
レジストリエディタで以下配下にあるキーを確認します。
HKEY_CURRENT_USER\Software\Microsoft\FTP\Accounts
接続先のクライアントごとにキーが作成され、その配下にさらにアカウント情報が記録されるようです。
FTP接続アカウント情報の削除
再度エクスプローラでFTP接続
接続できた
サブスクリプションIDが別なのになんでFTPホスト名同じなの?
Azureサポートに聞いてみた。
App Service の FTP ホスト名については、各リージョン内に複数存在する ”スタンプ” と呼ばれる単位ごとに定まっております。
App Service インスタンスは、内部的にはデータセンター内に複数存在するホスト OS 上の Hyper-V のゲスト OS (Azure VM) として動作をしておりますが、それらのインスタンス (Azure VM) の集合体を “スタンプ” と呼び、各リージョンにはスタンプが複数存在します。
そして、同じスタンプをご利用いただいているユーザー様では FTP ホスト名が同一となり、FTP デプロイ ユーザー名の “\” マークの前の情報 (App Service 名) を利用し、アクセス先の App Service を判断します。
※ スクリーン ショットに表示されている ”waws-prod-dm1-023” の “dm1-023” の部分が、スタンプを指し示す文字列です。
なお、同じ App Service プランを利用してデプロイした App Service は、同じインスタンス上で動作いたします。
上述の通り、スタンプはインスタンスの集合体ですので、同じ App Service プランを利用してデプロイされ、同じインスタンス上で動作をする App Service は同じスタンプ、つまり同じ FTP ホスト名を持ちます。
また、複数の App Service を異なる App Service プランを利用してデプロイいただいた場合でも、ご利用いただくスタンプはランダムに定まるため、すべて同じ FTP ホスト名となる可能性はございます。
参考になるページ
-
Azure App Service の リージョンとスタンプ、IP アドレスについて
https://blogs.msdn.microsoft.com/jpcie/?p=325 -
Windows エクスプローラーを使ったFTP接続方法
http://xn--hostgator--tx4i9cssv854df9de53p.com/windows-explorer-ftp/