2013-07-18 65 views
0

我有ASP.NET MVC應用程序,它包含一些文件夾,可以在IIS中運行應用程序時實時更改文件。如何限制IIS應用程序池刷新,如果一些文件更改?

當我改變某些文件與像的.resx擴展(無代碼生成)和.XML(使用自定義內容)我的應用程序池被刷新,我不希望這種行爲,但是如果我改變.cshtml然後池不刷新。

當我在App_Data文件夾中提到「有問題」的文件時,池不會被刷新,但也可能有其他文件夾的解決方案。

例如,如果我有我的應用程序,文件夾結構:

App_Code 
    App_Data 
    - file1.resx // when its content changes the pool DOESN'T get refreshed 
    - files2.xml // when its content changes the pool DOESN'T get refreshed 
    - files3.cshtml // when its content changes the pool DOESN'T get refreshed 
    CustomFolder 
    - App_LocalResources 
    -- file1.resx // when its content changes the pool gets refreshed 
    -- files2.xml // when its content changes the pool gets refreshed 
    -- files3.cshtml // when its content changes the pool DOESN'T get refreshed 

如何防止刷新IIS應用程序池,如果一定的文件或文件類型改變?

感謝您的任何幫助。

回答

0

找到了解決辦法。 應用程序池回收問題.resx文件更改位於App_LocalResources文件夾中。我將這個文件夾中的所有文件移動到一個名爲Resources的新文件夾(與App_Data幾乎相同,因爲它不是系統文件夾)。

新的文件夾結構如下所示:

App_Code 
App_Data 
- ... 
CustomFolder 
    Resources 
    file1.resx 
    files2.xml 
    files3.cshtml 
1

我認爲App_Data是一個特殊的目錄,應用程序重新啓動/重新加載會被忽略,因爲很多動態/更改內容可能會在那裏結束。

從MSDN約resx文件:

的的.resx(基於XML的資源格式)文件被轉換到該可嵌入的運行時的二進制可執行或編譯成公共語言運行時的二進制的.resources文件衛星組件。

從那以後,我認爲應用程序正在重新啓動,因爲resx文件正在運行時編譯。

我不認爲有一種方法來防止這種行爲。 How to prevent an ASP.NET application restarting when the web.config is modified?有一些想法,但我還沒有嘗試過任何這些。

+0

是啊,你說得對,** ** RESX,但爲什麼** ** XML作用是相同的方式,這是很奇怪的。給定鏈接中提供的解決方案似乎不太好。不管怎樣,謝謝你。 –

+0

我會同意,XML再次踢掉這些東西是很奇怪的......特別是如果這是你放置在那裏的唯一文件。我對這部分沒有答案。 –

相關問題