【发布时间】: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