在使用 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正如预期的那样。然后我修改记事本中的文件以显示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
这会强制每五分钟重新创建一次符号链接,这会导致正确的信息再次出现在浏览器中进行多次迭代。显然,这不是一个理想的解决方案。
这是 Windows 10 中的错误还是我做错了什么?