2016-01-24 132 views
0

我有一個運行在Node上的RESTful API,它運行在服務器磁盤上的靜態文件上。如果我在Node上運行服務(通過命令行),我可以對我的靜態文件集合執行所有CRUD操作,並接收對我的HTTP請求的預期HTTP響應。防止iisnode緩存require'd靜態文件

但是,當我採用相同的服務並通過iisnode在IIS上託管它時,我的GET請求似乎返回文件的緩存版本。也就是說,如果我通過REST服務編輯文件,我可以遠程訪問服務器並確認更新已完成,但如果我通過RESTful API請求文件,則會收到舊版本。

我試過以下,其中沒有對我工作過:

  • 彈跳IIS。
  • 在Web IIS Web應用程序上禁用「緩存」和「內核緩存」輸出緩存。
  • 在Cache-Control標頭中指定no-cache。
  • 刪除使用iisnode攔截器的配置。

任何有關如何防止iisnode(或iis)緩存我的靜態文件的想法將非常感激。

回答

0

找到解決此問題的方法。該解決方案是通過閱讀this thread得出的。該解決方案包括了:

  • 更新我iisnode標籤watchedFiles屬性值參考,我想觸發節點進程重新啓動靜態(JSON)文件。從<iisnode watchedFiles="*.js" />更改爲<iisnode watchedFiles="*.js;relative/path/to/static files/*.json" />
  • 回收應用程序的應用程序池。這一步沒有記錄在線程中,我懷疑是其他人在解決問題方面遇到問題的原因。