Sitecore发布管道,如果发布失败,如何捕获目标数据库

Sitecore发布管道,如果发布失败,如何捕获目标数据库,sitecore,Sitecore,问题:如果向TargetDatabase发布项目失败,则无法捕获 在sitecore UI中,当我将一个项目从主数据库发布到web数据库(目标数据库)时,我想在它显示在UI中之前检查发布是否成功 查看John West关于管道订单的以下帖子: 我添加了以下发布项目处理器: <processor patch:after="*[@type='Sitecore.Publishing.Pipelines.PublishItem.PerformAction, Sitecore.Kernel']"

问题:如果向TargetDatabase发布项目失败,则无法捕获

在sitecore UI中,当我将一个项目从主数据库发布到web数据库(目标数据库)时,我想在它显示在UI中之前检查发布是否成功

查看John West关于管道订单的以下帖子:

我添加了以下发布项目处理器:

 <processor patch:after="*[@type='Sitecore.Publishing.Pipelines.PublishItem.PerformAction, Sitecore.Kernel']" type="BOTWLibrary.Pipelines.EvaluateResult, BOTWLibrary"/>

提前感谢。

如果发布失败,它会将结果操作设置为“无”,并给出未知发布操作的原因。这并不能保证发布失败,但我认为这是最接近的

public class EvaluateResult : PublishItemProcessor
{
    public override void Process(PublishItemContext context)
    {
        // check if publish was successful.
        if(context.Result.Operation == PublishOperation.None)
        {
            throw new Exception(context.Result.Explanation);
        }
    }
}

如果发布失败,它会将结果操作设置为“无”,并给出未知发布操作的原因。这并不能保证发布失败,但我认为这是最接近的

public class EvaluateResult : PublishItemProcessor
{
    public override void Process(PublishItemContext context)
    {
        // check if publish was successful.
        if(context.Result.Operation == PublishOperation.None)
        {
            throw new Exception(context.Result.Explanation);
        }
    }
}

@Dan我试图检查'context.Result.Operation==PublishOperation.None',但如果存在sql异常,则它永远不会进入if语句:作业已启动:发布到“web”|#异常:System.Reflection.TargetInvocationException:异常已由调用的目标引发。-->System.Data.SqlClient.SqlException:无法打开数据库也许您可以稍微澄清一下您的问题。是否正在引发异常,而您希望抑制错误?@Dan我试图检查“context.Result.Operation==PublishOperation.None”,但是,如果存在sql异常:作业已启动:发布到“web”|#异常:System.Reflection.TargetInvocationException:调用的目标已引发异常,则它永远不会进入if语句。-->System.Data.SqlClient.SqlException:无法打开数据库也许您可以稍微澄清一下您的问题。是否正在引发异常,而您希望抑制该错误?