【问题标题】:Kentico 9 MVC - calling Smart Search causes IIS Express worker process to crashKentico 9 MVC - 调用智能搜索导致 IIS Express 工作进程崩溃
【发布时间】:2015-12-21 23:33:45
【问题描述】:

我们在 Kentico 8 中进行了开发,但升级到了 9,因为我们认为它会使 MVC 部分更容易,例如引入我们现有的大量 MVC 代码,并在 MVC 中编写更多代码繁重的页面而不是尝试为所有内容制作自定义 webpart,使其成为门户/mvc 混合体。客户端可以处理他们的内容页面,我们可以快速将一些 MVC 页面连接到我们现有的基础架构。

但是,目前没有什么工作得很好,我们遇到了很多麻烦。为了让 MVC 站点作为 CMSApp 下的虚拟目录工作,进行了大量的配置工作。

大多数时候,当我在调试时尝试使用 MVC 控制器中的 API 调用 Smart Search 时,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 项目集成所有自定义遗留功能,该项目设置为主 WebApp 解决方案中的虚拟目录。

为我们的自定义代码使用 MVC 项目似乎比尝试创建一堆自定义 webpart 来执行我们已经构建的相同功能要快得多。

任何建议将不胜感激。我还向 Kentico 开了一张支持票,所以他们那边可能存在错误。

【问题讨论】:

  • 我在此期间发现的一些东西:将此代码部署到我们的开发服务器并在那里测试它不会引发相同的错误。 (我在 SearchCONtroller 中添加了一些日志记录代码。API 搜索方法调用不会返回任何结果,即使使用在搜索索引的预览页面上返回结果的相同搜索文本也是如此。

标签: visual-studio iis model-view-controller kentico


【解决方案1】:

我会先尝试重建搜索索引,并确保它在 Kentico 管理界面中正常工作。然后确保索引已成功同步到 MVC 应用程序。 如果满足上述条件,但问题仍然存在 - 我会检查 Windows 事件日志以获取错误详细信息,这可能会让您对进一步的步骤有所了解。

问题: 索引的大小是多少? IIS 上的应用程序池是否有任何内存限制设置?

【讨论】:

  • 我尝试了多次重新启动和重建搜索索引、Visual Studio、我的虚拟机等。几乎每次都得到相同的结果。通过管理界面进行测试时,搜索索引工作正常。 Kentico CMS 应用程序经常使 Visual Studio 和我的虚拟机陷入瘫痪,即使它使用 4 核和 8GB 内存,它也无法跟上击键的速度。那时我会重新开始一切。
  • 回答您的问题: - 有 2 个索引,一个是 9.9kB,另一个是 144kB - 我不确定应用程序池的内存限制,因为在 VS 中调试时会发生此错误,所以它在默认设置下使用 IIS Express。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-07-20
  • 1970-01-01
相关资源
最近更新 更多