小编Dav*_*ers的帖子

Sitecore syncMaster索引策略不起作用

我有一个渲染组件,使用Lucene索引运行搜索以填充自己.

我们定义了两个索引; 硕士和网络.在体验编辑器中,它使用主索引和实际站点的Web索引.

我们已将Web索引策略配置为onPublishEndAsync,并且我们已将主索引策略配置为syncMaster,CMS用户可以添加/编辑为此组件提供支持的Sitecore项目,并在体验编辑器中立即查看它们.

但是,当我们更改Sitecore中的数据时,似乎没有更新主索引.体验编辑器仅在我手动运行索引重建后才显示数据.

        <strategies hint="list:AddStrategy">
          <strategy ref="contentSearch/indexConfigurations/indexUpdateStrategies/syncMaster" />
        </strategies>
Run Code Online (Sandbox Code Playgroud)

为什么索引在数据更改时不会更新?

UPDATE

所以我将建议的文件与干净安装进行了比较,它们是相同的.

我应该补充一点,我没有使用标准sitecore_master_index.我们有多个站点在sitecore的同一个实例上运行,因此我们添加了一个config include for websitename_master_index.我已将<index>节点内的配置与sitecore_master_indexin in Sitecore.ContentSearch.Lucene.Index.Master.config进行了比较,唯一的区别是<root>指向特定网站内容节点的爬虫元素,另外我们添加了一些自定义字段,但我认为这些字段不会导致问题我们可以手动重建索引吗?

我在看到showconfig.aspx这个时发现的另一个有趣的事情是:

<agent type="Sitecore.ContentSearch.Tasks.Optimize" method="Run" interval="12:00:00" patch:source="Sitecore.ContentSearch.config">
    <indexes hint="list">
        <index>sitecore_master_index</index>
    </indexes>
</agent>
Run Code Online (Sandbox Code Playgroud)

我不确定这是否有任何意义,但我们的定制没有匹配的条目websitename_master_index

UPDATE

我还将调试级别日志记录添加到了爬网程序

在crawling.log中我只看到以下内容:

14416 08:55:10 INFO  [Index=website_master_index] Initializing SitecoreItemCrawler. DB:master / Root:/sitecore/Content/Website/Home    
14416 08:55:10 INFO  [Index=website_master_index] Initializing SynchronousStrategy.
Run Code Online (Sandbox Code Playgroud)

在编辑和保存项目时,日志中没有进一步提及索引,这实际上是sitecore_master_index我们没有更改配置的标准吗?

lucene lucene.net sitecore sitecore8 sitecore8.1

6
推荐指数
1
解决办法
771
查看次数

Unity'GetAllInstances'没有返回任何东西

我使用Unity来管理我的应用服务器上的服务但由于某种原因我无法使用方法'GetAllInstances'来工作.奇怪的是,相同类型的'GetInstance'似乎工作正常!

这是配置:

<alias alias="IService" type="Atom.Server.Infrastructure.Interface.Service.IService, Atom.Server.Infrastructure.Interface"/>
<alias alias="IAtomCommandService" type="Atom.CommandServer.AtomCommandService.Interface.IAtomCommandService, Atom.CommandServer.AtomCommandService.Interface"/>
<alias alias="AtomCommandService" type="Atom.CommandServer.AtomCommandService.AtomCommandService, Atom.CommandServer.AtomCommandService"/>


<register type="IService" mapTo="AtomCommandService">
    <lifetime type="Singleton"/>
</register>
<register type="IAtomCommandService" mapTo="AtomCommandService">
    <lifetime type="Singleton"/>
</register>
Run Code Online (Sandbox Code Playgroud)

我的想法是,当服务器启动时,我需要能够获得所有已配置的IService实例来初始化它们.

    IUnityContainer container = ConfigureUnityContainer();
    UnityServiceLocator locator = new UnityServiceLocator(container);

    var single = locator.GetInstance<IService>();
    var all = locator.GetAllInstances<IService>().ToList();
Run Code Online (Sandbox Code Playgroud)

正如我所说,单曲作品,但得到的一切都没有回报.即使我从配置中删除IAtomCommandService映射并且只是拥有IService它仍然不起作用.关于我在哪里出错的任何想法?

.net dependency-injection unity-container service-locator

5
推荐指数
1
解决办法
1786
查看次数

VSTS Web性能测试 - 以错误的顺序记录AJAX请求?

我是新手使用VSTS,我正在尝试创建一些Web测试,以形成我继承的ASP.NET WebForms应用程序的负载测试.

该网站大量使用'AJAX Pro',这是一个AJAX框架,在微软发布带有UpdatePanels等的AJAX框架之前就已经开始了.

我遇到的问题是web测试记录器似乎在测试结束时附加了AJAX请求:

在此输入图像描述

因为它们被附加到测试的末尾,所以在我注销之后,请求中的请求没有.ASPXAUTH cookie令牌,并且ASP.NET以302返回到登录页面(因为我' d expect)这导致测试失败.

我可以手动将这些ajax请求移动到请求序列中的正确位置,以便测试通过 - 但是这个示例是一个非常简单的测试,并且应用程序发出了大量的AJAX请求,这在大型和更多中是不可行的复杂的测试.

那么,为什么要这样做呢?我能做些什么让AJAX请求以正确的顺序发出?

asp.net webtest load-testing tfs2010 microsoft-test-manager

5
推荐指数
1
解决办法
2511
查看次数

Sitecore 控制器渲染导致 StackOverflowException

我正在尝试使用 Sitecore 8 进行简单的控制器渲染,并且出于某种原因,它StackOverflowException在主布局标记内的行中生成一个,其中包含对要在其中渲染的占位符的引用。这似乎使工作进程崩溃,但是您可以在调试过程中看到堆栈溢出:

w3p 崩溃 堆栈溢出

这是我非常基本的控制器:

控制器/视图

这是我的控制器渲染定义:

在此处输入图片说明

复制说明:

  1. 这发生在原版 Sitecore 8 安装中(修订版 150427 - 通过 SIM 安装)。
  2. MVC 项目也是用空的 ASP.NET 项目创建的,然后是 MVC 5.1 中的 NuGetting。
  3. Web.config & Global 从 Sitecore 站点根目录添加到项目中wwwroot

仅供参考-进行视图渲染时一切都很好-只是控制器渲染似乎引起了问题

asp.net asp.net-mvc sitecore sitecore-instance-manager

5
推荐指数
1
解决办法
877
查看次数

未在Android模拟器上显示的适用于phonegap/jquerymobile应用的图片

我正在使用jQuery Mobile开发PhoneGap应用程序,由于某些原因,jQuery移动图像不会显示在模拟器中或部署到手机中.然而,当使用Web浏览器在本地运行该站点时,它们可以正常工作吗?

这是我第一次使用Eclipse(希望我的最后一次是诚实的).有什么东西我不见了吗?

文件夹结构

文件夹结构

铬:

铬

仿真器: 模拟器

android android-emulator jquery-mobile cordova

4
推荐指数
1
解决办法
2840
查看次数

Sitecore - 以编程方式清除用户的缓存

我有一个自定义角色提供程序,用户可以在执行某些操作时更改特定用户的角色.

这导致了一些问题:

  1. 如果将角色添加到用户(允许他们访问页面),则在我使用手动清除sitecore缓存之前,这不会生效 /sitecore/admin/cache.aspx

  2. 我们正在缓存用户呈现的菜单栏.但是当权限更改时,可能会添加新项目/删除项目,但这不会反映出来,因为它来自缓存版本.

有没有办法可以通过编程方式清除特定用户的sitecore缓存?

asp.net caching sitecore sitecore8

4
推荐指数
1
解决办法
436
查看次数

Sitecore Analytics重定向多站点解决方案

我有一个启用了分析的多站点解决方案.当用户访问其中一个站点时,分析引擎似乎将用户重定向到其他站点.

我在这里读到,这可能是由于Analytics.HostName包含用户被重定向到的站点的主机引起的.但是,此设置为空.

以下是请求和响应标头:

在此输入图像描述

asp.net sitecore sitecore8 sitecore8.1

4
推荐指数
1
解决办法
302
查看次数

TeamCity不从特定包源恢复NuGet包

我最近从他们的新NuGet服务器向我的解决方案添加了一堆Sitecore NuGet包:https://sitecore.myget.org/F/sc-packages/api/v3/index.json

但TeamCity似乎无法下载这些:

[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.Linq.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.ContentSearch.NoReferences'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel'.
[12:45:16][restore] Unable to find version '8.1.160302' of package 'Sitecore.Kernel.NoReferences'.
Run Code Online (Sandbox Code Playgroud)

我在"NuGet Installer"构建步骤中修改了包源列表,以便Sitecore源是唯一的,但它仍然无法恢复这些.dll.(作为旁注:我原本以为其他软件包现在都会失败,因为它们的源已被删除,但那些没有错误?)

查看日志,我可以看到被触发的命令,看起来是正确的:

C:\TeamCity\buildAgent\tools\NuGet.CommandLine.2.8.6\tools\NuGet.exe restore C:\TeamCity\buildAgent\work\52ce411043f6b04c\MySolution.sln -Source https://sitecore.myget.org/F/sc-packages/api/v3/index.json
Run Code Online (Sandbox Code Playgroud)

.net teamcity sitecore nuget nuget-package-restore

4
推荐指数
1
解决办法
3682
查看次数

Azure服务总线 - 消息直接进入死信队列

我有以下代码将消息发送到总线:

var queueClient = new QueueClient(ServiceBusConnectionString, QueueName);

var message = new Message(poco.SerializeToBytes());

await queueClient.SendAsync(message);
Run Code Online (Sandbox Code Playgroud)

但他们似乎直接进入了死亡信件消息计数:

在此输入图像描述

我还创建了一个Azure函数,它将选择消息:

    [FunctionName("ServiceBusFunction")]
    public static void Run([ServiceBusTrigger("schedule", AccessRights.Listen, Connection = "ServiceBusConnection")]byte[] myQueueItem, TraceWriter log)
    {
        log.Info($"C# ServiceBus queue trigger function processed message: {myQueueItem}");
    }
Run Code Online (Sandbox Code Playgroud)

当我关闭该功能时,在创建此功能之前,消息进入ACTIVE MESSAGE COUNT.我已尝试在本地运行该函数,但该函数未被命中.我觉得自己错过了从函数中获取总线上的消息方面的基本信息吗?

azure azureservicebus azure-servicebus-queues azure-functions

4
推荐指数
1
解决办法
1619
查看次数

9 Patch png无法正常工作的背景

我正在尝试为我的应用创建一个在所有分辨率/方向上看起来都很清晰的背景图像.

我是Android开发的新手,但我知道实现这一目标的最简单方法是使用9个补丁图像.我以为我明白他们是如何运作的,但我无法让它发挥作用.

我已经创建了一个背景图像@ 768 x 1280这是我的Nexus 4的分辨率.当我不修补它并在我的设备上查看它时,它看起来很好(显然,因为分辨率/方向与设备的匹配) :

在此输入图像描述

所以看起来很漂亮.

但后来我使用该drawer9patch.bat文件将补丁添加到图像上,并将文件重命名为'.9.png',结果如下:

在此输入图像描述

精疲力竭!

奇怪的是:在draw9patch工具右侧的预览窗格中,它看起来都很好....

我也试过以较小的分辨率制作图像,但徽标和文字看起来并不清晰; 他们看起来像素化......

我觉得必须有一些我不知道的难题的重要部分?我定义为内容的区域正在被拉伸?

这是我的布局代码:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    android:background="@drawable/my_background_image_patched"
    android:padding="0px">
<!-- Login controls here --->
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud)

这是我的9补丁图片(位于'drawable'文件夹):

在此输入图像描述

android nine-patch

3
推荐指数
1
解决办法
1616
查看次数