标签: sitecore

'System.Web.Webpages.Html.Htmlhelper'不包含'Sitecore'的定义

当我使用时,我在Visual Studio中收到此错误@Html.Sitecore:

"System.Web.Webpages.Html.Htmlhelper"不包含"Sitecore的"和最佳推广方法重载"Sitecore.Mvc.HtmlHelperExtensions.Sitecore(System.Web.Mvc.HtmlHelper)"的定义有一些无效arguments.`

但是,一旦部署,它确实运行没有任何问题.

我正在使用Sitecore 7.2和MVC 5.1.

在此输入图像描述

我读过的文章涉及类似的错误消息,请谈谈文件夹文件的system.web.webPages.razor部分.这就是它在我的解决方案中的表现.Viewsweb.config

<system.web.webPages.razor>
<host factoryType="System.Web.Mvc.MvcWebRazorHostFactory, System.Web.Mvc, Version=3.0.0.0, Culture=neutral, PublicKeyToken=31BF3856AD364E35" />
<pages pageBaseType="System.Web.Mvc.WebViewPage">
  <namespaces>
    <add namespace="System.Web.Mvc" />
    <add namespace="System.Web.Mvc.Ajax" />
    <add namespace="System.Web.Mvc.Html" />
    <add namespace="System.Web.Routing" />
  </namespaces>
</pages>
Run Code Online (Sandbox Code Playgroud)

最初我以为我只需要重新启动VS,但这不起作用.有没有人有什么建议.

编辑 这是标准的Sitecore 7.2安装,因此具有以下绑定重定向:

  <dependentAssembly>
    <assemblyIdentity name="System.Web.Mvc" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1"/>
    <bindingRedirect oldVersion="1.0.0.0-5.0.0.0" newVersion="5.1.0.0" xmlns="urn:schemas-microsoft-com:asm.v1"/>
  </dependentAssembly>
  <dependentAssembly>
    <assemblyIdentity name="System.Web.WebPages.Razor" publicKeyToken="31bf3856ad364e35" xmlns="urn:schemas-microsoft-com:asm.v1"/>
    <bindingRedirect oldVersion="1.0.0.0-3.0.0.0" newVersion="3.0.0.0" xmlns="urn:schemas-microsoft-com:asm.v1"/>
  </dependentAssembly>
Run Code Online (Sandbox Code Playgroud)

另外,在查看visual studio的输出时,还有一个我之前没有发现的错误:

Instance argument: cannot convert from 'System.Web.WebPages.Html.HtmlHelper' to 'System.Web.Mvc.HtmlHelper'

编辑2

我不再认为这是Sitecore MVC问题.我得到了类似的错误@Html.ActionLink("xxx", "xxx").其他人在VS2012中看到了这个问题,但我使用的是2013年.

编辑3 …

asp.net-mvc sitecore sitecore-mvc sitecore7.2

15
推荐指数
4
解决办法
3万
查看次数

Sitecore项目的最佳实践

我是Sitecore的新手,想了解更多关于新项目的常规方法.因此,我愿意倾听并尝试一些经验丰富的Sitecore开发人员解决方案.我有很多问题,我不会问他们所有问题.我对其他人的做法非常好奇.

什么是启动Sitecore项目的最佳方法?你会如何设置你的项目?您将如何看待未来项目中的代码回收?

简而言之:您有什么经验(如果您曾与Sitecore项目合作或正在开展工作),您将如何推荐其他人使用Sitecore.

现在我们正在忙于构建Sitecore块,我们可以在其他项目中回收,但我知道肯定有1001个方便的提示和技巧.我希望我们有一些Sitecore pro的@ stackoverflow可以帮助一点.

project sitecore

14
推荐指数
2
解决办法
7009
查看次数

现场Sitecore网站的Git源控制策略

首先,我为这个问题的庞大规模道歉,因为我确信我提出的建议在实施方面是一个"大问题",可能本身可能是三到四个单独的问题.我不会问我是不是迫切需要帮助.

我被赋予了修改公司风险管理程序的重要任务,涉及我们的在线工作.

由于我们没有备份,也没有保护我们的数据,我已经决定,就像任何参与专业编程的人应该已经做的那样,我们将通过源代码控制来保护我们的工作.我目前使用Git在本地进行此操作,但其他人不使用源代码控制,最终我们失去了源代码控制提供的许多好处.我宁愿我们有一个系统,每个人都使用Git并强制执行规则,如果它不在源代码管理中,它就不会停留.显然,我们需要一个备份计划,但作为开发人员,我想首先要做的是在对备份解决方案进行排序之前对事物的编码方面进行整理 - 显然,对此的任何建议都非常受欢迎.

我们运行一个带有SQL Server 2005后端的ASP.NET网站,运行Sitecore作为我们的首选CMS.在理想的世界中,我希望将此CMS站点的所有不断变化的部分置于源代码管理之下,包括数据库.

目前,我知道这不是最好的主意,我为Sitecore内置的所有子布局运行了一个解决方案.这是在源代码管理下,感谢Git我已经能够轻松添加分支并推送新功能和修复错误(使用Git-flow作为我的工作流程解决方案).我对Git还是很陌生,所以我没有在提交之外管理任何太复杂的东西,忽略某些文件等.

除此之外,我还想使用源代码控制来获取源代码管理下的数据库内容.据我了解,您可以将Sitecore内容项序列化为文件系统中的一棵大树(如果我没记错的话,保存为.item文件?).如果这是理想的解决方案,我也想将它们添加到源代码控制中,虽然我不知道它们将在文件系统中保存的确切位置.我的文件系统现在是这样的:

- Data      (Logs, indexes, etc - is this needed to be in source control?)
- Source    (Helper files, although occasionally modified)
- Website   (Containing all the files I edit, and other essential Sitecore stuff)
Run Code Online (Sandbox Code Playgroud)

如前所述,我当前的存储库仅在我的系统上,它包含一个解决方案文件夹,其中包含一堆.ascx,.ascx.cs,.ascx.cs.designer和奇数.aspx文件.这往往会使我的生活更容易上传,就像使用

我想要输入的是为所有开发人员管理这个的理想方式.尽管使用DVCS,我更愿意将实时服务器视为主存储库,并让所有其他开发人员从中推送和拉取它们.我们将使用git-flow工作流程解决方案,因为它很好地符合我们的开发方式.显然,我担心的是正确设置它而不破坏当前在没有备份的服务器上的非常昂贵,高流量的站点.

有关服务器上有多少数据存储在存储库中的提示和建议,有关如何处理Sitecore中的序列化数据的指导以及可能如何使用源代码控制本身作为备份到单独存储库的方式,将受到欢迎.这是我第一次为实时网站构建源代码控制系统/工作流程,所以对我最好的事情的任何指导和建议都会非常感激.


编辑:我将在这方面给予一个赏金,试图获得更多关于人们如何使用Git处理Sitecore的指南.

为了澄清自己,我不是在寻找一种方法来支持我的工作,而是让许多开发人员可以使用它来确保网站上的代码与中央存储库保持同步.例如,我之前已经引用过,我将使用git-flow来管理我的工作流程.原始仓库将存在于共享服务器上(在时间上可能是一个测试环境),并且所有开发人员都将拥有可以继续工作和推送的克隆.从这里开始,我希望能够将更改从共享驱动器上的原始存储库推送到实时服务器,如果发现错误则再次返回.我还想在我的仓库中包含序列化的内容项.

asp.net git version-control sitecore

14
推荐指数
2
解决办法
2027
查看次数

在模板构建器中查询sitecore"source"字段的表示法

我试图使用查询表示法(或xpath - 无论哪个工作)设置模板的源字段,但它们似乎都没有工作.

我的内容树是多站点内容树:

France
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions

US
--Page 1
----Page1A
-------Page1AA
--Page 2
--Page 3
--METADATA
----Regions
Run Code Online (Sandbox Code Playgroud)

每个站点都有自己的METADATA文件夹,我想要它,以便在每个主要国家/地区节点中添加页面时,我希望值反映该站点的METADATA中的任何内容.我现在有两个不同的领域 - 一个droplink和一个treelistex字段.所以我想我可以只获取国家站点的父项,并获取元数据文件夹.当我在两个字段中放入以下查询时,我得到不同的结果:

 query:./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
Run Code Online (Sandbox Code Playgroud)
  • 对于droplink字段,我只获得第一个Region(一个项目)
  • 对于treelistex字段,我获取整个内容树

然后我尝试稍微修改查询并取出"查询"符号

 ./ancestor::*[@@templatename='CountryHome']/METADATA/Regions/*
Run Code Online (Sandbox Code Playgroud)

如果我转到开发人员中心/ xpath构建器,并将上下文节点设置为主国家/地区站点下面的任何项目,它将返回我正确的内容,但是当我将其放入源代码中时,我将获得整个内容树案件.

救命!

c# asp.net sitecore content-management-system sitecore6

14
推荐指数
2
解决办法
2万
查看次数

Sitecore自定义用户配置文件 - 存储在何处可以查询

我在Sitecore的核心数据库中创建了一个自定义用户配置文件模板和对象(根据Security API Cookbook).

我可以通过编程方式选择(根据安全API手册),以便我的外联网用户拥有扩展的个人资料,涵盖所有常见的嫌疑人(地址,电话,电子邮件格式等)

但是,这些数据存储在哪里?如果我想查询数据库以根据此配置文件数据返回用户子集,如何访问它.

外联网成员系统的典型要求是提取要在电子邮件或电话类型活动中联系的用户列表.这可以通过Sitecore会员系统完成吗?

更新> 我将猜测并说配置文件数据存储在aspnet_Profile.PropertyValuesBinary ..这将使它几乎不可能查询,不适合我的目的.那是不幸的.那么为了扩展我的问题,如果是这样的话,是否可以让Sitecore将这些值存储在文本字段中以便可以搜索?

membership sitecore

13
推荐指数
2
解决办法
8978
查看次数

在HttpRequest管道中访问会话

我正在尝试访问查询字符串参数并将其保存到Session变量.由于我正在处理的解决方案有几个基本布局,最简单的方法是将其添加到管道处理程序.但是,我的代码失败了,因为args.Context.Session为null:

public class SaveQueryStringToSession : HttpRequestProcessor
{
    public override void Process(HttpRequestArgs args)
    {
        Assert.ArgumentNotNull((object)args, "args");
        string queryString = WebUtil.GetQueryString("parm1");
        if (queryString.Length <= 0)
            return;
        args.Context.Session["parm1"] = queryString;
    }
}
Run Code Online (Sandbox Code Playgroud)

将此方法插入HttpRequestBegin或HttpRequestEnd管道时会发生这种情况.很想知道为什么,以及在这里使用标准的变通方法或模式.(是的,我会添加一个空检查.不需要指出它.)

我在IIS 7.5(集成.Net 2.0)上运行Sitecore Sitecore.NET 6.4.1(rev.110720)

可能相关的链接:

sitecore

13
推荐指数
2
解决办法
7117
查看次数

Sitecore没有读取/创建计数器的必要权限

在Sitecore(6.6 v130404)日志文件中有太多"Sitecore没有读取/创建计数器的必要权限." 正在创建的记录.我已禁用服务器中的性能计数器.

 <!--  ENABLE COUNTERS
                Indicates if performance counters are enabled.
                Default value: true
  -->

<setting name="Counters.Enabled" value="false"/>
Run Code Online (Sandbox Code Playgroud)

日志提取:(每6秒继续更新日志)

Heartbeat 19:07:33 WARN  Sitecore has no necessary permissions for reading/creating counters.
Heartbeat 19:07:39 WARN  Sitecore has no necessary permissions for reading/creating counters.
Heartbeat 19:07:45 WARN  Sitecore has no necessary permissions for reading/creating counters.
Heartbeat 19:07:51 WARN  Sitecore has no necessary permissions for reading/creating counters.
Run Code Online (Sandbox Code Playgroud)

我修改了以下webconfig设置并将值设置为1小时,因为上面的日志提到它与心跳设置有关.

这解决了这个问题.我已经使用Google搜索了此设置中此更改的任何效果,但未找到任何结果.可以将此设置设置为1小时吗?这个设置的目的是什么?

asp.net sitecore sitecore6

13
推荐指数
2
解决办法
9231
查看次数

Sitecore EventQueue表越来越失控

我们遇到的问题是EventQueue表有时会非常快速地增长,每秒最多3k条记录,并且永远不会清除记录(截至目前为3000万条记录).我们的环境有如下设置:

Sitecore 7.2

  • 4台CD服务器和1台CM服务器
  • 所有四个CD服务器都是负载平衡的.
  • CD1和CD2指向DB1服务器CD3,CD4指向DB2
  • 服务器有2个发布目标(每个数据库一个)合并
  • 在所有服务器(CM,CD)上为Core db设置复制
  • EventQueue已启用

我有几个问题,所以我将它们分解为单独的行项目.

  1. 当为所有CD服务器发布发布时,更新内容直接从CM数据库发送到CD数据库(所有正确的表),或者是否发送到CD数据库中的EventQueue表,并且CD服务器有一个作业/查看表并根据需要更新的任务.

  2. 根据第一个问题的答案,如果有2个CD服务器指向同一个DB,他们如何知道他们是否应该处理EventQueue表(他们不会每个处理表并重复工作)

  3. 为什么没有清除EventTable表?如何清除,何时清除?

sitecore sitecore7 sitecore7.2

13
推荐指数
1
解决办法
4765
查看次数

在Sitecore 8中禁用Google Analytics

我有一个Sitecore体验平台(Sitecore版本8,外行术语),我不想使用Analytics.当我查看Sitecore Experience时,整个分析都是如此.我想以"干净"的方式禁用Google Analytics,但对于Sitecore 8,我理解它的方法不同.什么是正确的方法?

注意:是的,我知道:

<setting name="Analytics.Enabled" value="false" />

是的,我在Stack Overflow上看到了看似相关的问题.

先感谢您!!萨沙

sitecore sitecore-dms sitecore8

13
推荐指数
1
解决办法
9090
查看次数

缺少必需的许可证:运行时Sitecore

我收到了这个错误

缺少必需的许可证:运行时

我检查了数据文件夹路径

 <sc.variable name="dataFolder" value="C:\Path\Data" />
Run Code Online (Sandbox Code Playgroud)

和许可证文件设置

  <setting name="LicenseFile" value="$(dataFolder)/license.xml" />
Run Code Online (Sandbox Code Playgroud)

还检查权限都是正确的但仍然是给出错误.

sitecore sitecore8

13
推荐指数
2
解决办法
2万
查看次数