[英]mklink directory in wwwroot stops showing updated data after a few iterations of changes to files in the directory
在使用 IIS 作為 Web 服務器的 Windows 10 上,似乎在 wwwroot 下使用 mklink 命令創建的目錄有時會停止看到對該目錄中的文件所做的更改。 以下是我為測試這一點所做的:
我創建了一個目錄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 和 go 到以下頁面:
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不是符號鏈接和 go 那么它可以正常工作,就像它應該做的那樣。
為了解決這個問題,我使用以下命令創建了一個批處理文件makelink.bat :
rmdir C:\inetpub\wwwroot\test
mklink /D C:\inetpub\wwwroot\test C:\test
timeout 300
makelink
這會強制每五分鍾重新創建一次符號鏈接,這會導致正確的信息再次出現在瀏覽器中進行多次迭代。 顯然,這不是一個理想的解決方案。
這是 Windows 10 中的錯誤還是我做錯了什么?
您可以嘗試在注冊表中禁用 IIS 緩存,然后重新啟動並重試。
HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\InetInfo\Parameters\DisableMemoryCache (REG_DWORD)
當此注冊表項設置為非零值時,文件緩存被禁用,您可以將其設置為 1。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.