Por que o Sitecore publica itens de rascunho da API do C # e como faço para parar de fazer isso?

Estou executando uma publicação programada do meu banco de dados mestre do Sitecore usando a API de publicação do Sitecore. Eu chamo um serviço da web em intervalos programados durante o dia que executa o seguinte código (ligeiramente condensado para legibilidade):

// grab the root content node from sitecore
Item contentNode = dbSource.Items[ID.Parse("{0DE95AE4-41AB-4D01-9EB0-67441B7C2450}")];

PublishOptions options = new PublishOptions(sourceDatabase, targetDatabase, PublishMode.Smart, lang, DateTime.Now);

options.RootItem = contentNode;

options.Deep = true;

Publisher p = new Publisher(options);

p.PublishAsync();

Quando executamos o código acima, ele publica tudo no nó de conteúdo, incluindo todos os descendentes, independentemente do estado do fluxo de trabalho. É como se estivesse ignorando o fluxo de trabalho completamente. Não é isso que estamos procurando e está causando muitos problemas em nosso site ao vivo.

Se executarmos a mesma ação dentro do Sitecore Desktop, ela publicará tudo no nó de conteúdo, incluindo todos os descendentes, que sãopublicável (Ou seja, no estágio final do fluxo de trabalho).Não publica itens na árvore que ainda estão no modo de rascunho. Este é o comportamento necessário.

Eu tentei implementar o código como um usuário não administrativo, cercando o código acima com a seguinte declaração usando:

string userName = @"sitecore\******";

Sitecore.Security.Accounts.User user = Sitecore.Security.Accounts.User.FromName(userName, true);

user.RuntimeSettings.IsAdministrator = false;

using (new Sitecore.Security.Accounts.UserSwitcher(user))
{
    ...
}

Infelizmente isso não teve efeito.

Existe algo óbvio que eu perdi, ou estou fazendo certo e Sitecore está fazendo errado? Alguém pode ajudar por favor?

O estranho que notei, também, é que os itens de rascunho que foram publicados, quando vistos no banco de dados ao vivo, não mostravam absolutamente nada no Sitecore Desktop em termos de campos ou metadados. Eles também estavam mostrando um aviso de que "O item atual não tem uma versão em" Inglês: Inglês ".

questionAnswers(2)

yourAnswerToTheQuestion