IIS を Web サーバーとして使用する Windows 10 では、mklink コマンドを使用して wwwroot の下に作成されたディレクトリが、ある時点でそのディレクトリ内のファイルに加えられた変更を認識しなくなるようです。これをテストするために私が行ったことは次のとおりです。
ディレクトリC:\testを作成し、次の DOS コマンドを使用してC:\inetpub\wwwrootにそのディレクトリへのシンボリック リンクを作成しました。
mklink /D C:\inetpub\wwwroot\test C:\test
次に、C:\testディレクトリに、次の内容のtest.htmlという小さな HTML ファイルを作成しました。
<html>
<body>
This is test 1
</body>
</table>
次に、同じコンピューターで Microsoft Edge を開き、次のページに移動します。
http://localhost/test/test.html
それは動作し、表示されますThis is a test 1 as expected. 次に、メモ帳でファイルを変更して、This is test 2と表示します。再びそれは動作します。ただし、数回繰り返した後、私の場合はThis is test 5まで、ブラウザーは更新されたファイルの表示を停止します。This is test 4 と表示されるだけです。番号 6、7、8 などを表示するようにファイルを変更できますが、ブラウザはThis is test 4のままです。
最初はキャッシュの問題だと思っていましたが、IIS でキャッシュをオフにすると問題が解決しません。キャッシュを無効にした後に再起動したところ、数回繰り返して再び機能し始め、その後再び更新が停止しました。
C:\inetpub\wwwrootの下にディレクトリtestを作成し、testがシンボリック リンクではない場合、上記の演習を実行すると、想定どおりに完全に機能します。
この問題を回避するために、次のコマンドを使用してバッチ ファイルmakelink.batを作成しました。
rmdir C:\inetpub\wwwroot\test
mklink /D C:\inetpub\wwwroot\test C:\test
timeout 300
makelink
これにより、シンボリック リンクが 5 分ごとに強制的に再作成され、正しい情報がブラウザに再び表示されるようになります。明らかに、これは理想的なソリューションではありません。
これは Windows 10 のバグですか、それとも何か間違っていますか?