IIS7.5でFTPサイトを立てて、仮想ディレクトリを複数個作成するケースでバグというかおかしな仕様を見つけたのでシェア。
現象
FTPサイトを作って、
①ルート配下に仮想ディレクトリを1つ作成
→FTPクライアントからルートのディレクトリ一覧で仮想ディレクトリ(virtual1)見える
aaa.ftp
|--virtual1(仮想ディレクトリ)
②ルート配下に仮想ディレクトリを2つ以上作成
→FTPクライアントから該当サイトに繋ぐと下記エラーが出てディレクトリ一覧をリスト表示出来ない。。(virtual1,2ともに見えず何も表示されない)
aaa.ftp
|--virtual1(仮想ディレクトリ)
|--virtual2(仮想ディレクトリ)
550 Keyset does not exist
解決策
色々調べると下記へのアクセス権がないために、ルートからディレクトリ一覧が表示されないらしい。
#このディレクトリ内のファイルに仮想ディレクトリへの接続情報が格納されるらしい
C:\ProgramData\Microsoft\Crypto\RSA\MachineKeys
仮想ディレクトリの接続ユーザに使っているユーザに、下記への読取り権限を与えてあげる事で無事仮想ディレクトリが表示されるようになった。
結構はまったが、まぁ解決!
[参照]
http://serverfault.com/questions/655968/iis-7-5-ftp-and-virtual-directory