Мы создали 2 приложения с использованием MVC, а также административного и клиентского приложения. Администраторская сторона используется для создания и обновления XML-файлов с содержимым страницы. Клиентское приложение просто читает XML и отображает его в виде HTML.
Файлы XML размещаются на общем диске, и оба приложения считывают файлы из одного места, чтобы данные были отделены от приложений.
Обновления содержимого, сделанные для любых файлов, немедленно появляются в клиентском приложении, но любые НОВЫЕ файлы, созданные с помощью приложения Admin, не отображаются, пока IIS не будет повторно использован в клиентском приложении.
string p = string.Format("{0}{1}", SiteInfo.Instance.SitePath, @"\sitemap.xml");
var model = new Models.Pages.PagesPageModel
{
CMSPage = Models.Entities.CMSPage.EntireList(p)
};
private static List<CMSPage> EntireList(string path)
{
var doc = XDocument.Load(path);
var list = new List<CMSPage>();
var all = doc.Descendants().Where(d => d.Name == "page").ToList();
//var all = doc.Element("webpages").Elements().Where(d => d.Name == "page").ToList();
foreach (var p in all)
{
var page = GetPage(p);
//recursion for children
page.Children = GetChildrenPages(page, p);
list.Add(page);
}
return list;
}
Должен ли быть способ заставить приложения обновляться в списке файлов без перезагрузки IIS каждый раз?