2015-12-21 25 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。 –