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.

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top