Sitecore 中的 RetryerRequiredException shell
RetryerRequiredException in Sitecore shell
有没有人体验过 Sitecore shell 中的 RetryerRequiredException
?当我想发布项目或重建 link 数据库(或任何需要保存到数据库的任何内容)时,我在测试环境(本地没有问题)中遇到此异常。
我是 运行 SC7.2(修订版 141226),具有 Oracle 后端。 web.config 中的重试器元素已禁用。
这是异常信息:
Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.
和堆栈跟踪:
[RetryerRequiredException: Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.]
Sitecore.Data.DataProviders.Sql.SqlDataApi.CreateTransaction() +354
Sitecore.Data.Security.Accounts.SqlMembershipUser.UpdateProperties(String propertyNames, String propertyValues, Byte[] binaryValues) +62
Sitecore.Data.Security.Accounts.SqlProfileProviderBase.SetPropertyValues(SettingsContext sc, SettingsPropertyValueCollection properties) +611
System.Configuration.SettingsBase.SaveCore() +474
System.Configuration.SettingsBase.Save() +104
System.Web.Profile.ProfileBase.SaveWithAssert() +42
System.Web.Profile.ProfileBase.Save() +122
Sitecore.Security.UserProfile.Save() +266
Sitecore.Web.UI.HtmlControls.Registry.SetValue(String key, String value) +222
Sitecore.Shell.Applications.ShellForm.ShowDatabaseName(String visible) +93
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +76
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +211
Sitecore.Shell.Framework.Commands.MethodCommandProcessor.Invoke(PipelineArgs args) +534
Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +398
Sitecore.Pipelines.Pipeline.Start(PipelineArgs args, Boolean atomic) +366
Sitecore.Shell.Framework.Commands.MethodCommand.Execute(CommandContext context) +632
Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +547
System.Web.UI.Control.PreRenderRecursiveInternal() +113
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4297
编辑 1:
我也尝试启用重试器配置元素,但这会导致完全相同的异常。
编辑 2:
最近发生变化的一件事是从 7.2 版本 140526 升级到版本 141226。在发行说明中我看到了这一点:
Sitecore configuration has been changed to use different retryer
instances for every database object so that the active retryer for a
database does not block the work with other databases. (422504)
但是相应的web.config并没有显示与此相关的变化。
我最终将此问题提交给 support.sitecore.com,这显然是一个错误。解决方法是在配置中注释掉整个重试器元素:
<!--retryer disabled="true" type="Sitecore.Data.DataProviders.Retryer, Sitecore.Kernel">
<param desc="Number of tries">6</param>
<param desc="Interval between tries">00:00:00.500</param>
<param desc="Log each exception (should be used for debug only)">true</param>
</retryer-->
有没有人体验过 Sitecore shell 中的 RetryerRequiredException
?当我想发布项目或重建 link 数据库(或任何需要保存到数据库的任何内容)时,我在测试环境(本地没有问题)中遇到此异常。
我是 运行 SC7.2(修订版 141226),具有 Oracle 后端。 web.config 中的重试器元素已禁用。
这是异常信息:
Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.
和堆栈跟踪:
[RetryerRequiredException: Retryer required for database operation. You need to wrap code into Factory.GetRetryer().Execute<int>(() => {}) context.]
Sitecore.Data.DataProviders.Sql.SqlDataApi.CreateTransaction() +354
Sitecore.Data.Security.Accounts.SqlMembershipUser.UpdateProperties(String propertyNames, String propertyValues, Byte[] binaryValues) +62
Sitecore.Data.Security.Accounts.SqlProfileProviderBase.SetPropertyValues(SettingsContext sc, SettingsPropertyValueCollection properties) +611
System.Configuration.SettingsBase.SaveCore() +474
System.Configuration.SettingsBase.Save() +104
System.Web.Profile.ProfileBase.SaveWithAssert() +42
System.Web.Profile.ProfileBase.Save() +122
Sitecore.Security.UserProfile.Save() +266
Sitecore.Web.UI.HtmlControls.Registry.SetValue(String key, String value) +222
Sitecore.Shell.Applications.ShellForm.ShowDatabaseName(String visible) +93
[TargetInvocationException: Exception has been thrown by the target of an invocation.]
System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor) +0
System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments) +76
System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture) +211
Sitecore.Shell.Framework.Commands.MethodCommandProcessor.Invoke(PipelineArgs args) +534
Sitecore.Nexus.Pipelines.NexusPipelineApi.Resume(PipelineArgs args, Pipeline pipeline) +398
Sitecore.Pipelines.Pipeline.Start(PipelineArgs args, Boolean atomic) +366
Sitecore.Shell.Framework.Commands.MethodCommand.Execute(CommandContext context) +632
Sitecore.Web.UI.Sheer.ClientPage.OnPreRender(EventArgs e) +547
System.Web.UI.Control.PreRenderRecursiveInternal() +113
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +4297
编辑 1:
我也尝试启用重试器配置元素,但这会导致完全相同的异常。
编辑 2:
最近发生变化的一件事是从 7.2 版本 140526 升级到版本 141226。在发行说明中我看到了这一点:
Sitecore configuration has been changed to use different retryer instances for every database object so that the active retryer for a database does not block the work with other databases. (422504)
但是相应的web.config并没有显示与此相关的变化。
我最终将此问题提交给 support.sitecore.com,这显然是一个错误。解决方法是在配置中注释掉整个重试器元素:
<!--retryer disabled="true" type="Sitecore.Data.DataProviders.Retryer, Sitecore.Kernel">
<param desc="Number of tries">6</param>
<param desc="Interval between tries">00:00:00.500</param>
<param desc="Log each exception (should be used for debug only)">true</param>
</retryer-->