我們有一個間歇性問題,其中配置文件或更具體的數據子集中的數據迷失在以太網中。真相被告知我不知道如何處理它,因爲我不確定它是代碼,配置,機器還是IIS問題。爲了讓你發生了什麼事的想法....外部配置文件(configSource)從內存中丟失(MVC,C#,ASP.net)
我們正在做的
我們有一個包含一個配置文件「價格」下拉值:
<searchForm>
<priceLowerBoundValues>
<priceLowerBoundValue>2500</priceLowerBoundValue>
<priceLowerBoundValue>5000</priceLowerBoundValue>
....
</priceLowerBoundValues>
....
</searchForm>
這些包含在一個名爲searchForm.config的文件中。在web.config中,它們被引用爲像這樣的外部文件。
<searchForm configSource="Config\searchForm.config" />
我們有一個從IConfigurationSectionHandler繼承的自定義配置處理程序。在這裏得到這個值的主要依據是這個代碼。
var priceLowerBoundValueXPath = "/searchForm/priceLowerBoundValues/priceLowerBoundValue/text()";
searchFormLookups.PriceLowerBoundValues = section.SelectNodes(priceLowerBoundValueXPath).Cast<XmlNode>().Select(x => int.Parse(x.Value));
然後,我們引用它的唯一地方就是構建viewmodel的選擇列表。它看起來有點像這樣:
SearchFormConfiguration.PriceLowerBoundValues.ToSelectList((parameters.PriceLowerBound != null) ? parameters.PriceLowerBound.Value : 0)
沒有做名單不斷修改,並使用ReSharper的「查找用法」只帶來了這一個電話。程序中沒有其他要點觸及這些值。
的問題
什麼會間歇性地發生的是下拉框中我們的網頁上突然有隻有一個值(在價格上盒例如2500)。請注意它並非完全空白,但通常大部分值都已消失。我們有類似的外部配置丟棄(幾乎完全)的問題,並導致整個地方的空引用錯誤。例如它仍然在尋找應該在那裏的配置,但它已經從地球表面上消失了。
停止網站,停止應用程序池,然後再次把所有東西都解決了問題。這使我最初認爲它可能是內存使用情況,而外部配置是它的第一件事,但我現在確實不確定。
另一件要注意的事情。我們每天早上在清晨開始重新啓動應用程序池。
任何幫助,這是非常讚賞,即使它只是一個微調正確的方向。正如我所說,我無法找到從何處開始的任何信息,無論是IIS設置還是代碼。 :)