Considerações para automação do lado do servidor do Office

Traduções deste artigo Traduções deste artigo
ID do artigo: 257757 - Exibir os produtos aos quais esse artigo se aplica.
Expandir tudo | Recolher tudo

Neste artigo

Sumário

Os desenvolvedores podem usar automação no Microsoft Office para criar soluções personalizadas que usam os recursos e os recursos que integram o produto do Office. Embora tal desenvolvimento através de programação pode ser implementado em um sistema cliente com relativa facilidade, um número de complicações pode ocorrer se automação ocorre no código do lado do servidor, como Microsoft Active Server Pages (ASP), ASP.NET, DCOM ou um serviço do Windows NT.

Este artigo descreve as complicações que os desenvolvedores podem enfrentar. O artigo também oferece alternativas à automação que pode acelerar o desempenho. Os desenvolvedores devem estar cientes, no entanto, que são sugestões que este artigo fornece para fins informativos somente. Microsoft não recomenda ou oferece suporte a automação do lado do servidor do Office.

Observação Nesse contexto, o termo "servidor" também se aplica ao código que está sendo executado em uma estação de trabalho do Windows, se o código estiver sendo executado de um Windows estação de trabalho diferente de estação interativa do usuário que efetuou logon. Por exemplo, código que é iniciado pelo Agendador de tarefas sob a conta do sistema será executado no mesmo ambiente como código ASP "servidor" ou como código DCOM. Portanto, muitos dos problemas neste artigo podem ocorrer. Para obter mais informações sobre estações de trabalho do Windows e sobre COM, consulte a seção "Mais informações" e a seção "Referências".

Mais Informações

Todas as versões atuais do Microsoft Office foram projetadas, testadas e configuradas para executar como usuário final produtos em uma estação de trabalho cliente. Eles pressupõem um perfil de usuário e de área de trabalho interativo. Eles não fornecem o nível de segurança que é necessária para atender às necessidades de componentes do lado do servidor que são projetados para execução autônoma ou reentrância.

Microsoft recomendou não no momento e não suporta, aplicativos de automação de Microsoft Office de qualquer aplicativo cliente autônomo, não interativo ou componente (incluindo ASP, ASP.NET, DCOM e serviços NT), porque o Office pode apresentar comportamento instável e/ou bloqueio quando Office é executado neste ambiente.

Se você estiver criando uma solução que é executado em um contexto do lado do servidor, você deve tentar usar componentes que foram feitas seguros para execução autônoma. Ou, você deve tentar encontrar alternativas que permitem que pelo menos parte do código para executar no lado do cliente. Se você usar um aplicativo do Office de uma solução de servidor, o aplicativo perderá muitos dos recursos necessários para executar com êxito. Além disso, você irá ser levando os riscos com a estabilidade da sua solução geral.

Problemas ao usar automação do lado do servidor do Office

Os desenvolvedores que tentam usar o Office em uma solução de servidor precisam estar ciente das cinco áreas principais nas quais o Office funciona diferente previstos por causa do ambiente. Se seu código é executado com êxito, você deve corrigir esses problemas e minimizar os efeitos tanto quanto possível. Considere cuidadosamente esses problemas quando você cria seu aplicativo. Uma solução não é possível abordar todos os os problemas. Designs diferentes exigem que você priorizar os elementos de forma diferente.
  • Identidade do usuário : aplicativos do Office assumem uma identidade de usuário quando os aplicativos são executados, mesmo quando a automação inicia os aplicativos. Os aplicativos tentam inicializar barras de ferramentas, menus, opções, impressoras e alguns suplementos com base nas configurações na seção de registro do usuário para o usuário que inicia o aplicativo. Muitos serviços executados em contas que tenham não perfis de usuário (como o SYSTEM conta ou contas IWAM_ [nome_do_servidor]). Portanto, Office não pode inicializar corretamente na inicialização. Nessa situação, o Office retornará um erro na função CreateObject ou a função CoCreateInstance . Mesmo se o aplicativo do Office pode ser iniciado, outras funções podem não funcionar corretamente se nenhum perfil de usuário existe.
  • interatividade com a área de trabalho : aplicativos do Office presumem que estão sendo executados em uma área de trabalho interativa. Em algumas circunstâncias, aplicativos talvez precise ser feita visível para determinadas funções de automação funcionar corretamente. Se ocorrer um erro inesperado, ou se um parâmetro não especificado é necessário para concluir uma função, o Office foi projetado para solicitar ao usuário uma caixa de diálogo modal pede ao usuário o que o usuário deseja fazer. Uma caixa de diálogo modal em uma área de trabalho não-interativa não pode ser descartada. Portanto, esse thread pára de responder (trava) indefinidamente. Embora algumas práticas de codificação podem ajudar a reduzir a probabilidade desse problema, essas práticas não é possível impede totalmente o problema. apenas esse fato torna executando aplicativos do Office de um ambiente de servidor arriscado e sem suporte.
  • escalabilidade e reentrância : componentes do lado do servidor precisam ser altamente reentrantes, multi-threaded componentes COM que têm o mínimo de sobrecarga e alta taxa de transferência para vários clientes. Aplicativos do Office estão em quase todos os aspectos o oposto exato. Aplicativos do Office não reentrante, baseado em STA, automação são servidores projetados para fornecer funcionalidade diversa mas uso intensivo de recursos para um único cliente. Os aplicativos oferecem pouca escalabilidade como uma solução do lado do servidor. Além disso, os aplicativos resolveu limites para elementos importantes, como memória. Não pode ser alteradas por meio de configuração. Mais importante, os aplicativos usam recursos globais, como memória mapeada arquivos, globais suplementos ou modelos e compartilhado automação servidores. Isso pode limitar o número de instâncias que pode ser executado simultaneamente e pode levar a condições de corrida se os aplicativos configurados em um ambiente multi-client. Os desenvolvedores que planeja executar mais de uma instância de qualquer aplicativo do Office ao mesmo tempo precisarão considerar "pooling" ou acesso ao aplicativo do Office para evitar deadlocks potenciais ou corrupção de dados de serialização.
  • resiliência e estabilidade : Office 2000, Office XP, Office 2003 e Office 2007 usam tecnologia do Microsoft Windows Installer (MSI) para fazer a instalação e self-repair mais fácil para um usuário final. MSI introduz o conceito de "instalação na primeira utilização". Isso permite que recursos para ser instalado ou configurado em tempo de execução para o sistema, ou mais freqüentemente para um determinado usuário dinamicamente. Em um ambiente de servidor, isso tanto desempenho mais lento e aumenta a probabilidade que pode aparecer uma caixa de diálogo que pergunta ao usuário para aprovar a instalação ou para fornecer um disco de instalação. Embora isso tenha sido desenvolvido para aumentar a resiliência do Office como um produto do usuário final, implementação do Office do MSI recursos é contraproducente em um ambiente de servidor. Além disso, a estabilidade do Office em geral não é possível ter certeza quando o Office é executado lado do servidor porque ele não foi foi projetado ou testado para esse tipo de uso. Usando o Office como um componente de serviço em um servidor de rede poderá reduzir a estabilidade do computador e, portanto, pode reduzir a estabilidade de toda a rede.
  • segurança do lado do servidor : aplicativos do Office nunca foram destinados ao uso do servidor. Portanto, aplicativos do Office não leve em consideração os problemas de segurança que face de componentes distribuídos. O Office não autentica as solicitações de entrada. O Office também não protege você de acidentalmente executar macros, ou inicie outro servidor que pode executar macros, do seu código de servidor. não abra arquivos que são carregados para o servidor de um site anônimo. Com base nas configurações de segurança que foram definidas por último, o servidor pode executar macros em um contexto de administrador ou sistema com privilégios totais e, portanto, podem comprometer sua rede. Além disso, o Office usa muitos componentes do lado do cliente (como MAPI simples, WinInet e MSDAIPP) que podem armazenar em cache informações de autenticação de cliente para agilizar o processamento. Se o Office estiver sendo servidor automatizado, uma instância pode serviço mais de um cliente. Se as informações de autenticação armazenadas em cache para a sessão, um cliente pode usar as credenciais em cache de outro cliente. Portanto, o cliente pode obter permissões de acesso que não seja concedido por representar outros usuários.
Além dos problemas técnicos, você também deve considerar a problemas de licenciamento. Diretrizes de licença atuais evita que aplicativos do Office que está sendo usado em um servidor para solicitações de cliente do serviço, a menos que esses clientes se possuem licenciado cópias do Office. Usando a automação do lado do servidor para fornecer funcionalidade do Office nas estações de trabalho sem licença não é coberto pelo contrato de licença de usuário final (EULA).

Além desses problemas, um dos seguintes erros comuns pode ocorrer quando você tenta automatizar o Office lado do servidor:
  • A função CreateObject a função CoCreateInstance retornar uma das seguintes mensagens de erro em tempo de execução e não pode ser iniciado para automação.

    Mensagem 1
    Erro em tempo de execução '429': o componente ActiveX não é possível criar o objeto
    Mensagem 2
    Erro em tempo de execução '70': permissão negada
    Mensagem 3
    CO_E_SERVER_EXEC_FAILURE (0x80080005): Falha de execução do servidor
    Mensagem 4
    E_ACCESSDENIED (0 x 80070005): Acesso negado
  • Quando você abre um documento do Office, você receber uma das seguintes mensagens de erro.

    Mensagem 1
    Erro em tempo de execução '5981' (0x800A175D): não foi possível abrir armazenamento de macro
    Mensagem 2
    Erro em tempo de execução '1004': método ' ~ 'do objeto' ~ ' falhou
  • A função CreateObject e a função CoCreateInstance parar de responder e nunca concluir ou demorar muito para retornar. Em alguns servidores, a criação é rápida, mas 1004 erros aparecem no log de eventos do Windows que indicam que o aplicativo foi interrompido.
  • Determinadas funções falharem inesperadamente ou parar de responder indefinidamente devido a um alerta de usuário ou outra caixa de diálogo que requer atenção do usuário.
  • Executar várias solicitações ou testes de estresse faz com que o código falhar, parar de responder ou falha na criação ou terminação de um Office aplicativo. Quando isso ocorre, ou o processo fica está em execução na memória e não pode ser encerrado ou todas as instâncias do aplicativo que está sendo automatizada falha desse ponto em.
Outros problemas ou mensagens podem aparecer em adição aos que listados aqui, mas esses problemas geralmente ocorrem como resultado dos cinco principais problemas que estão listados anteriormente neste artigo.

Alternativas à automação do lado do servidor

A Microsoft recomenda que os desenvolvedores encontrar alternativas para automação do Office se eles precisam desenvolver soluções do lado do servidor. Devido às limitações ao design do Office, alterações em configuração do Office não são suficientes para resolver todos os problemas. a Microsoft recomenda um número de alternativas que não exigem o Office para ser instalado lado do servidor, e que pode executar tarefas mais comuns com mais eficiência e mais rapidamente do que automação. Antes de você envolver Office como um componente do lado do servidor no seu projeto, considere alternativas.

A maioria das tarefas de automação do lado do servidor envolvem a criação de documentos ou edição. Office 2007 oferece suporte aos novos formatos de arquivo XML aberto que permitem aos desenvolvedores criar, editar, ler e transformar o conteúdo do arquivo no lado do servidor. Esses formatos de arquivo usa o namespace System.IO.Package.IO do 3.x do Microsoft .NET Framework para editar arquivos do Office sem usar o Office próprios aplicativos de cliente. Isso é o método recomendado e com suporte para tratamento de alterações para arquivos do Office de um serviço.

O XML abertos formatos de arquivo são um padrão público. Para obter uma cópia da especificação, visite o seguinte site:
http://www.ecma-international.org/publications/standards/Ecma-376.htm
A Microsoft fornece um SDK para manipular formatos de arquivo XML abertos do 3.x .NET Framework. Para obter mais informações sobre o SDK e sobre como usar o SDK para criar ou editar arquivos XML abertos, visite os seguintes sites da Microsoft Developer Network (MSDN):
Documentação do SDK para XML aberto
http://msdn.microsoft.com/en-us/library/bb226703.aspx
Como: manipular documentos de formatos XML abertos do Office
http://msdn.microsoft.com/en-us/library/aa982683.aspx
Manipulação de arquivos do Word 2007 com o modelo de objeto XML aberto (parte 1 de 3)
http://msdn.microsoft.com/en-us/library/bb656295.aspx
Manipulação de arquivos do Word 2007 com o modelo de objeto XML aberto (parte 2 de 3)
http://msdn.microsoft.com/en-us/library/bb739835.aspx
Manipulação de arquivos do Word 2007 com o modelo de objeto XML aberto (parte 3 de 3)
http://msdn.microsoft.com/en-us/library/bb727374.aspx
Como manipular Excel 2007 e PowerPoint 2007 arquivos com o modelo de objeto XML aberto (parte 1 de 2)
http://msdn.microsoft.com/en-us/library/bb739834.aspx
Como manipular Excel 2007 e PowerPoint 2007 arquivos com o modelo de objeto XML aberto (parte 2 de 2)
http://msdn.microsoft.com/en-us/library/bb727373.aspx
Construindo soluções de geração de documentos de lado do servidor usando o modelo de objeto XML aberto (parte 1 de 2)
http://msdn2.microsoft.com/en-us/library/bb735940.aspx
Construindo soluções de geração de documentos de lado do servidor usando o modelo de objeto XML aberto (parte 2 de 2)
http://msdn2.microsoft.com/en-us/library/bb735939.aspx
Para mais informações sobre como usar XML aberto do .NET Framework 3.0 e para obter um exemplo, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
932921Como usar os componentes do .NET Framework 3.0 para criar e, em seguida, ao documento de fluxo de um Office Word 2007 e uma pasta de trabalho Office Excel 2007 para um computador cliente
931866Como usar o formato de arquivo XML do Office e os componentes de empacotamento do .NET Framework 3.0 para criar uma pasta de trabalho Excel 2007 simples ou um documento simples do Word 2007
Os usuários que estiverem executando versões anteriores do Office (como Office 2000, Office XP e Office 2003) podem exibir e editar XML abrir arquivos se os usuários instalar o pacote de compatibilidade livre fazer o download do site da Microsoft. Para baixar e instalar o pacote de compatibilidade, visite o seguinte site:
Microsoft Office Compatibility Pack para formatos de arquivo Word, Excel e PowerPoint 2007
http://office.microsoft.com/en-us/products/HA101686761033.aspx
Quando você transmitir arquivos de XML aberto do ASP ou ASP.NET, você deve fornecer o tipo correto (MULTIPURPOSE Internet Mail Extension) para o conteúdo desse fluxo você. Para obter uma lista dos tipos de MIME para arquivos do Office 2007, visite o seguinte site:
http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx
Se você está direcionando apenas clientes pre-Office 2007 e você não deseja exigir o uso de XML aberto na solução, você pode usar outros formatos de arquivo de Office não-binários, como HTML, XML e RTF. Em seguida, você pode transmitir esses arquivos para um cliente usando um tipo de MIME para que o texto resultante é exibido no Office. O documento pode ser editado, salvos e mesmo retornado para o servidor com ASP no servidor.

Para obter mais informações sobre qualquer um desses tópicos e para obter exemplos que mostram como implementá-los, clique nos números abaixo para ler os artigos na Base de dados de Conhecimento da Microsoft:
270906Como usar o ASP para gerar um documento Rich Text Format (RTF) para fluxo para o Microsoft Word
198703Como automatizar o Excel a partir do VBScript um lado do cliente
199841Como exibir ASP resultados usando o Excel no Internet Explorer com tipos de MIME
260239Como formatar os dados da célula quando você está criando um arquivo do Excel com uma página ASP
278973ExcelADO demonstra como usar o ADO para ler e gravar dados em pastas de trabalho do Excel
286023Como usar um componente ActiveX VB para automação do Word do Internet Explorer
288130Como usar o ASP para criar a planilha XML para exibição do lado do cliente
Se sua empresa requer a criação de lado do servidor do Office 97, Office 2000, Office e formatos de arquivo binário do Office 2003, fornecedores de terceiros oferecem componentes que podem ajudá-lo. Microsoft não fornece esses componentes, portanto, será necessário criar uma solução você mesmo ou adquirir de um fornecedor de terceiros. Muitos produtos de terceiros diferentes estão disponíveis. Você deve investigar cada solução para melhor coincidir com o fornecedor para suas necessidades comerciais. Se você deseja criar sua própria solução que edita o Office 97, Office 2000, Office XP, e formatos de arquivo binário do Office 2003 diretamente, você poderá obter o arquivo de formato especificações gratuitamente em termos de OSP (promessa de especificação abrir) o Microsoft. Não suporte técnico está disponível para a documentação ou para os produtos que você criar, mas a documentação está disponível. Para obter mais informações, visite o seguinte site:
http://www.microsoft.com/interop/docs/officebinaryformats.mspx
Soluções do lado do servidor também talvez queira permitir que os usuários carregar arquivos e, em seguida, o servidor processar os arquivos para exibição na Web ou em outros meios. A Microsoft está trabalhando no momento para oferecer esses recursos e fornece uma versão anterior desse recurso no Microsoft Excel Services.

Serviços do Excel é uma nova tecnologia de servidor que está incluído no Microsoft Office SharePoint Server 2007 e que permite que você carregar, calcular e exibir pastas de trabalho do Excel no Office SharePoint Server 2007. Para obter mais informações sobre serviços do Excel, visite os seguintes sites da Microsoft Developer Network (MSDN):
Visão geral dos serviços do Excel
http://msdn.microsoft.com/en-us/library/ms546696.aspx
Passo-a-passo: Desenvolvendo um aplicativo personalizado usando Web Services do Excel
http://msdn2.microsoft.com/en-us/library/ms519100.aspx
Criando aplicativos comerciais usando serviços do Excel e o Office abrir formatos XML
http://msdn.microsoft.com/en-us/library/cc540662.aspx
Você precisa para avaliar quais as opções que este artigo descreve atenda às suas necessidades e a melhor maneira implantar sua solução. Não são garantidas que as informações que este artigo fornece resolver todos os problemas para todos os clientes. Você é incentivados a testar sua solução exaustivamente antes de implantar a solução.

Propriedades

ID do artigo: 257757 - Última revisão: quarta-feira, 11 de junho de 2008 - Revisão: 16.5
A informação contida neste artigo aplica-se a:
  • Microsoft Office Access 2007
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2007
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2007
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Office PowerPoint 2007
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2007
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Project Standard 2007
  • Microsoft Office Project Professional 2007
  • Microsoft Office Project Standard 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Project 2002 Standard Edition
  • Microsoft Project 2000 Standard Edition
  • Microsoft Project 98 Standard Edition
  • Microsoft Office Visio Standard 2007
  • Microsoft Office Visio Professional 2007
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Visio 2000 Standard Edition
  • Microsoft Visio 2000 Professional Edition
  • Microsoft Visio 2000 Enterprise Edition
  • Microsoft Visio 2000 Technical Edition
  • Microsoft MapPoint 2006 Standard Edition
  • Microsoft MapPoint 2004 Standard Edition
  • Microsoft MapPoint 2002 Standard Edition
  • Microsoft MapPoint 2001 Standard Edition
  • Microsoft MapPoint 2000 Standard Edition
  • Microsoft AutoRoute 2006
  • Microsoft Office OneNote 2003
  • Microsoft Office OneNote 2007
  • Microsoft Office InfoPath 2003
  • Microsoft Office InfoPath 2007
Palavras-chave: 
kbmt kbqfe kbautomation kbprogramming kbservice KB257757 KbMtpt
Tradução automática
IMPORTANTE: Este artigo foi traduzido por um sistema de tradução automática (também designado por Machine Translation ou MT), não tendo sido portanto traduzido ou revisto por pessoas. A Microsoft possui artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais, com o objetivo de oferecer em português a totalidade dos artigos existentes na base de dados de suporte. No entanto, a tradução automática não é sempre perfeita, podendo conter erros de vocabulário, sintaxe ou gramática. A Microsoft não é responsável por incoerências, erros ou prejuízos ocorridos em decorrência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza atualizações freqüentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 257757

Submeter comentários

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com