2015-12-21 43 views
0

我們在Kentico 8上開發它,但升級到9,因爲我們認爲它會使MVC部分更容易,比如引入大量現有MVC代碼,並且在MVC中編寫更多的代碼大量頁面,而不是試圖爲所有東西製作自定義的webparts,以便它成爲門戶/ mvc混合。客戶可以在他們的內容頁面上工作,並且我們可以快速將一些MVC頁面連接到我們現有的基礎架構。Kentico 9 MVC - 調用智能搜索會導致IIS Express工作進程崩潰

但是,現在沒有什麼工作很好,我們遇到了很多麻煩。有很多配置摔跤讓MVC網站作爲CMSApp下的虛擬目錄工作。

大多數情況下,當我嘗試在調試時使用API​​從MVC控制器調用智能搜索時,IIS Express工作進程崩潰,所以我不知道問題出在哪裏。

我們基本上是從Kentico 9 MVC例如複製在這裏我們的代碼:https://github.com/Kentico/Mvc

[ValidateInput(false)] 
    public ActionResult Index(string searchText, int? page) 
    { 
     var pageIndex = (page ?? 1) - 1; 
     int totalItemsCount; 
     var model = new SearchResults() 
     { 
      Items = mService.Search(searchText, pageIndex, PAGE_SIZE, out totalItemsCount), 
      PageIndex = pageIndex, 
      PageSize = PAGE_SIZE, 
      Query = searchText, 
      TotalItemCount = totalItemsCount 
     }; 

     return View(model); 
    } 

而且我們在SearchController手動設置Kentico SearchService像這樣:

 public SearchController() 
    { 

     var indexInfos = SearchIndexInfoProvider.GetSearchIndexes(); 

     string[] indexNames = (from i in indexInfos 
      select i.IndexCodeName).ToArray(); 

     mService = new SearchService(indexNames, CultureHelper.GetDefaultCultureCode("SCGDEV"), "SCGDEV",true); 
    } 

我們使用VS 2013,而Kentico的設置是一個ASPX/Portal混合體,因此客戶可以使用門戶添加內容,並且我們可以通過MVC項目集成所有自定義遺留功能,MVC項目在主WebApp中設置爲虛擬目錄解。

與我們的自定義代碼一起使用MVC項目似乎比嘗試創建一堆自定義Web部件來完成我們已經構建的相同功能要快得多。

任何建議,將不勝感激。我也開通了Kentico的支持票,所以也許他們有一個bug。

+0

我在此期間發現的一些東西:將此代碼部署到我們的開發服務器並在其中進行測試並不會導致相同的錯誤。 (我向SearchCOntroller添加了一些日誌代碼 即使使用相同的搜索文本,並在搜索索引的預覽頁面上返回結果,API搜索方法調用也不會返回任何結果 –

回答

2

我試着重建搜索索引,並確保它在Kentico Admin界面中正常工作。然後確保索引已成功同步到MVC應用程序。 如果滿足上述條件,但問題仍然存在 - 我會檢查Windows事件日誌中的錯誤詳細信息,這可能會讓您瞭解進一步的步驟。

問題: 索引的大小是多少? IIS上的應用程序池是否有任何內存限制設置?

+0

我嘗試了多次重新啓動並重建搜索索引,Visual Studio,我的虛擬機等等。幾乎每次都有相同的結果。搜索索引在通過Admin界面進行測試時工作正常 Kentico CMS應用程序經常使Visual Studio和我的虛擬機陷入沉寂,即使它使用的是4核和8GB內存,也不能跟上按鍵的速度,此時我會重新開始一切。 –

+0

要回答你的問題: - 有兩個索引,一個是9.9kB,另一個是144kB - 我不確定mem ory對應用程序池的限制,因爲在VS中進行調試時發生此錯誤,所以它在默認設置上使用IIS Express。 –