簡體   English   中英

wwwroot 中的 mklink 目錄在對目錄中的文件進行幾次迭代更改后停止顯示更新的數據

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM