有两种配置和使用log4net的方法.第一个是我可以配置自己的appender和相关的记录器:
<!-- language: xml -->
<appender name="myLogAppender" type="log4net.Appender.RollingFileAppender" >
<file value="Logs\myLog.log" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date %level - %message%n" />
</layout>
</appender>
<logger name="myLog">
<level value="All"></level>
<appender-ref ref="myLogAppender" />
</logger>
Run Code Online (Sandbox Code Playgroud)
然后,当我想在日志中写一些东西时,我可以执行以下操作:
ILog log = LogManager.GetLogger("myLog");
log.Info("message");
Run Code Online (Sandbox Code Playgroud)
另一种使用方法是将root配置为我想要的详细信息:
<!-- language: xml -->
<root>
<level value="Error" />
<appender-ref ref="myLogAppender" />
</root>
Run Code Online (Sandbox Code Playgroud)
在这种情况下,我可以记录这样的消息:
ILog log = LogManager.GetLogger(typeof(Bar));
log.Info("message");
Run Code Online (Sandbox Code Playgroud)
第二种方法的好处是您可以动态启用或禁用某些消息.但问题是我正在使用EPiServer CMS进行开发,它有自己的使用log4net的日志记录系统,如果我在根级别启用信息日志记录,那么将编写大量系统日志.
你如何使用log4net?系统的每个部分都在自己的记录器中写入,或者所有内容都是用默认记录器编写的,配置决定下一步做什么?
我越来越注意到正在使用的内容管理系统的数量.我对SiteCore有一些熟悉.我读过一些关于Umbraco的文献.前几天我才刚刚收到乌节的风.我只听到过有关EPiServer的正面反馈.我很快就会进入一个使用它的角色.
这些功能和价格差异很大吗?是什么导致你选择其中一个(或几个)?
编辑
我在这里简要回顾了所谓的免费CMS:免费的Microsoft兼容内容管理系统
在开发一个50k页的网站时,我放弃了Orchard的原因:
Orchard CMS导入工具太慢了.它一次只能接受小批量生产.最初,导入1000条记录需要8分钟.因此,根据该原则,我预计导入所有记录可能需要7个小时.不幸的是,随着更多记录被插入到数据库中,我开始收到性能问题.我甚至开始减少批量大小,这只是暂时在早期阶段.(见 对果园说不)
umbraco sitecore episerver content-management-system orchardcms
除了Episerver.com
使用EPiServer开发的人使用哪些其他网站作为开发资源!?一直在使用coderesort.com,但我发现它缺乏如何做事的例子.
非常感谢,
Ĵ
我正在尝试使用episerver xform
编译的html 执行客户端表单验证,如下所示:http://codepen.io/anon/pen/ojGGJw
如何实现这一目标的任何指导?我正在考虑使用.validate库,但如果我们通过epi向表单添加新控件,我将遇到问题.我还尝试使用这样的AJAX调用:
$.ajax({
url: "/industry/XFormPost?XFormId=0643b992-56c6-40a5-91eb-c557443630e0&failedAction=Failed&successAction=Success&contentId=36",
data: $(this).serialize(),
type: "POST",
success: function () {
alert('Hello this is a valid form');
}
});
Run Code Online (Sandbox Code Playgroud)
它会触发事件,但不会将我的表单保存到数据库中.即使我通过的所有领域都是有效的
我在检查出Subversion后编译EPiServer Web应用程序时遇到问题.
我收到这个错误
编译器错误消息:CS1519:类,结构或接口成员声明中的标记','无效
来源错误:
Line 116: }
Line 117:
Line 118: public virtual EPiServer.Personalization.SubscriptionInfo, EPiServerSubscription Info {
Line 119: get {
Line 120: return ((EPiServer.Personalization.SubscriptionInfo, EPiServer)this.GetPropertyValue("SubscriptionInfo")));
Run Code Online (Sandbox Code Playgroud)
源文件:
c:\Windows\Microsoft.NET\Framework\v2.0.50727\Temporary ASP.NET Files\root\956e6fc5\66c11597\App_Code.9_fan95p.0.cs Line: 118
Run Code Online (Sandbox Code Playgroud)
从错误中可以看出,此文件位于"Temporary ASP.NET Files"文件夹中,是构建过程的一部分.这不是我的源代码.
我看到这个问题表明web配置包含类型引用
在"Namespace.ClassName,AssemblyName"格式中指定.
所以我进入了我的web.config并更改了部分
...
<profile ...>
<properties>
...
<add name="SubscriptionInfo"
type="EPiServer.Personalization.SubscriptionInfo, EPiServer"
provider="SqlProfile" />
...
Run Code Online (Sandbox Code Playgroud)
至
...
<profile ...>
<properties>
...
<add name="SubscriptionInfo"
type="EPiServer.Personalization.SubscriptionInfo"
provider="SqlProfile" />
...
Run Code Online (Sandbox Code Playgroud)
这删除了上面的立即错误,但后来我得到了不同类型的相同错误.所以我浏览了" Namespace.TypeName,AssemblyName "格式的所有类型,并删除了" ,AssemblyName ".这停止了所有CS1519错误,但后来我开始得到CS0234:
编译器错误消息:CS0234:名称空间'EPiServer'中不存在类型或命名空间名称'Personalization'(您是否缺少程序集引用?)
源错误:
第116行:}
第117行:
第118行:公共虚拟EPiServer.Personalization.SubscriptionInfo SubscriptionInfo {
第119行:获取{
第120行:返回((EPiServer.Personalization.SubscriptionInfo)(this.GetPropertyValue("SubscriptionInfo"))) ; …
我有一个问题,我在最后几天一直在努力.我正在尝试理解在使用MVC时块的渲染如何在Episerver 7中工作.
我目前的实际设置如下:
我创建了一个名为"TeaserBlock"的块类型,它具有以下几个属性:
[ContentType(DisplayName = "TeaserBlock", GUID = "571582c4-6b99-4c0a-b000-f62265e312a9", Description = "A Teaser Block for show!")]
public class TeaserBlock : BlockData
{
[Display( GroupName = SystemTabNames.Content, Order = 1)]
public virtual string TeaserHeading { get; set; }
[Display(GroupName = SystemTabNames.Content, Order = 2)]
public virtual string TeaserText { get; set; }
}
Run Code Online (Sandbox Code Playgroud)
为此,我在Views/Shared /中有一个相应的局部视图,名为TeaserBlock.cshtml.我想这个以视图模式渲染块?
我最大的问题是让"页面编辑"工作,经过一些尝试和谷歌搜索后,我终于使用以下代码:
[TemplateDescriptor(Inherited = true,
Tags = new string[] { RenderingTags.Preview },
TemplateTypeCategory = TemplateTypeCategories.MvcController)]
public class PreviewBlockController : ActionControllerBase, IRenderTemplate<BlockData>
{
public ActionResult Index(BlockData currentBlock) …Run Code Online (Sandbox Code Playgroud) 我在EPiServer 6 R2中看到了一些用于仪表板的自定义小工具和一个管理模式的插件,可以让您重建搜索索引.
EPiServer 7有哪些选择?
是否有任何我尚未发现的官方插件/小工具或其他内置功能?
是否可以在没有任何小工具/插件的情况下手动重建整个索引?怎么样?
什么是最常用的方法?
我需要使用起始页上的链接按钮绑定博客页面的LinkURL.我所做的实际上是找到了Page ID并使用它获取了一个Page Reference.
PageReference BlogPageReference = new PageReference(21);
PageData BlogPage = GetPage(BlogPageReference);
var url = BlogPage.LinkURL;
Run Code Online (Sandbox Code Playgroud)
这非常简单,但我不满意页面ID是硬编码的.有没有更好的方法来实现这一点,例如获取Page by Page名称?或任何其他方式?
提前致谢 :)
有谁知道BlockData类为什么不直接实现IContent?我知道在从数据库中检索BlockData期间,由Castle创建的代理实现了IContent.
如果StackOverflow不适合此类问题,请移动它.
我只想获得EPi Server网站所有已启用语言的列表(在管理模式下的"管理网站语言"面板中启用),并且最好还能够检索标志图标的路径,当然还有文化名称/ ID.
我正在使用EPiServer 6 R2,所以如果代码适用于该版本,那将是可爱的.把我指向正确的方向也会很棒.