Bom dia pessoal.
Apesar do post ser antigo, gostaria de deixar aqui minha experiência com relação ao uso da DLL MSXML na sua versão 5.
Em seções locais, no Windows XP e Windows 7 34/64 Bits, funcionou sem crashes, tudo ok.
Mas ao utilizar em seções remotas e no Windows Server (No nosso caso, o 2008 R2), tivemos travamentos, investigando bem, observamos que sempre ocorria quando se tentava realizar a Assinatura e/ou Validação do arquivo .XML, mais precisamente quando na unit ACBrNFeUtil, tentava utilizar os recursos da devida DLL,
digamos a função ValidaMSXML:
function ValidaMSXML(XML: AnsiString; out Msg: AnsiString; const APathSchemas: string = '';
AModeloDF: TpcnModeloDF = moNFe; AVersaoDF: TpcnVersaoDF = ve200): Boolean;
E a função AssinarMSXML:
function AssinarMSXML(XML : AnsiString; Certificado : ICertificate2; out XMLAssinado : AnsiString): Boolean;
Ao utilizar algum recurso COM, algo assim, ocorre algum conflito interno, não sei exatamente.
Resolvemos decidindo passar a compilar o ACBrNFe para utilizar OpenSSL/LibXML2 no lugar de Capicom/MSXML, sendo a única limitação, o suporte a certificado A3, dai nesse caso continuamos com o Capicom ou utilizamos o ACBrNFeMonitor para o A3.
Realizamos todos os testes no sistemas citados acima, e funcionou perfeitamente, emitimos uma grande quantidade de NFC-e's, fazendo testes de estresse na aplicação e tudo certo até o momento.
Conforme já dito por alguns colegas aqui no fórum, pelo que se dá a entender, a versão 5.0 da MSXML é limitada a uso do aplicativos da suíte Office da Microsoft, recomendam utilizar a versão 4.0 ou a 6.0 (Que ao que tudo indica, se adapta as políticas do sistema operacional onde está instalada).
Olhem o link, por gentileza:
http://support2.microsoft.com/kb/269238/pt-br
Fica aqui meu feedbak com relação a esse erro.
Desde já, muito obrigado ao pessoal do ACBr, pelo excelente trabalho