Troca WS 'O objeto especificado não foi encontrado na loja.' erro
-
12-09-2019 - |
Pergunta
Estamos usando WS Exchange 2007 para pastas de correio do processo e estão acertando vários problemas se tentar encaminhar uma mensagem que já recebeu. Nosso processo é:
- Windows Service pasta caixa de correio monitores, em encontrar um novo e-mail processamos as informações e mover o item para uma 'pasta transformados' e armazenar o ID da mensagem Exchange.
- Os usuários podem optar por encaminhar o correio externamente. Nós usamos a API do Exchange para encontrar o item utilizando o ID da mensagem que nós armazenados anteriormente, e depois novamente usar a API para encaminhar.
Com exceção de encontrar o e-mail novamente está provando bastante esquisito. Nós regularmente obter o seguinte erro:
O objeto especificado não foi encontrado na loja.
Existe uma maneira melhor / mais confiável que pode conseguir o mesmo? A documentação para o Exchange WS é bastante escassa.
Solução
Este é um bug no Microsoft Exchange gerenciar API. aqui está um link para mais informações http://maheshde.blogspot.com/2010/ 09 / exchange-web-service-especificado-object.html
Outras dicas
Você está salvando o ID da mensagem da mensagem recém-encontrado ou a mensagem uma vez que foi movida para a pasta 'processados'? O id vai mudar quando ele se move para uma nova pasta.
O método recomendado no livro Dentro Microsoft Exchange Server 2007 Web Services é agarrar a PR_SEARCH_KEY (0x300B, binário) do item recém-descoberto, em seguida, movê-lo para a pasta 'processados'. Você pode então procurar por ela na nova pasta com base no PR_SEARCH_KEY e obtê-lo de novo ID de Mensagem para encaminhá-lo.
Eu vim à conclusão de que isso acontece comigo é porque enquanto meu aplicativo está processando os e-mails, alguém está mexendo com um e-mail ao mesmo tempo.
Assim, para curar o problema, eu colocá-lo o código em um try catch e ver se a exceção é == a esse objeto não foi encontrado na loja, se assim eu apenas ignorá-lo e passar para o próximo item. Assim, para não tem problemas.
Eu escrevi um programa que lê os e-mails na caixa de entrada de downloads anexos para a pasta especificada, escreveu a informação de e-mail eo caminho salvas no banco de dados, e, finalmente, exclui o e-mail. Eu executar este programa como um serviço do Windows. Após todos os testes forem concluídos eu executar este programa para o servidor principal e executá-lo. Programa é executado com sucesso, mas às vezes eu tenho esse erro. Eu verifiquei tudo e finalmente descobri que eu esqueci de serviço parada no meu computador. 2 programas que corre no meu computador e no servidor real verificando a mesma caixa de correio ao mesmo tempo. Se você receber este erro Certifique-se de que apenas um programa pode processar ao mesmo caixa de correio.