DetailPage-MSS-KB

Base de Dados de Conhecimento

Artigo: 257757 - Última revisão: quarta-feira, 11 de Junho de 2008 - Revisão: 16.5

 

Nesta página

Sumário

Os programadores podem utilizar a automatização do Microsoft Office para criar soluções personalizadas que utilizam as capacidades e funcionalidades que estão incorporadas no produto do Office. Apesar de tal desenvolvimento programático pode ser implementado num sistema cliente com facilidade relativa, um número de problemas no que respeita à pode ocorrer se automatização tem lugar do código do lado do servidor, tais como Microsoft Active Server Pages (ASP), ASP.NET, DCOM ou um serviço do Windows NT.

Este artigo aborda as complicações que os programadores podem face. O artigo também fornece alternativas à automatização que pode acelerar o desempenho. Os programadores deverão ter conhecimento, no entanto, que são as sugestões que este artigo fornece apenas para fins informativos. Microsoft não recomenda nem suporta automatização de lado do servidor do Office.

Nota Neste contexto, o termo "lado do servidor" também se aplica ao código que está a executar uma estação de trabalho do Windows, se com o código da Windows estação de trabalho diferente a estação interactiva do utilizador com sessão iniciada. Por exemplo, o código que é iniciado pelo programador de tarefas sob a conta SYSTEM é executado no mesmo ambiente como código ASP de "lado do servidor" ou como código DCOM. Por este motivo, muitos dos problemas descritos neste artigo poderão ocorrer. Para mais informações sobre as estações de trabalho do Windows e sobre COM, consulte a secção "Mais informação" e a secção "Referências".

Mais Informação

Todas as versões actuais do Microsoft Office foram concebidas, testar e configuradas para ser executado como produtos de utilizador final numa estação de trabalho cliente. Suponha um perfil de utilizador e de ambiente de trabalho interactivo. Não fornecem o nível de segurança que é necessária para satisfazer as necessidades dos componentes do lado do servidor que foram concebidas para ser executada automaticamente ou reentrancy.

a Microsoft não está actualmente recomendar e não suporta, aplicações de automatização do Microsoft Office a partir de qualquer aplicação cliente automática e não interactivos ou componente (incluindo ASP, ASP.NET, DCOM e serviços do NT), porque o Office poderão apresentar um comportamento instável e/ou impasse quando Office é executado no ambiente.

Se estiver a criar uma solução que é executado no contexto de lado do servidor, deverá tentar utilizar componentes que tenham sido efectuadas seguros para a execução automática. Ou, deve tentar encontrar alternativas que permitem, pelo menos, parte do código para execução lado do cliente. Se utilizar uma aplicação do Office a partir de uma solução do lado do servidor, a aplicação irá falta muitas das capacidades necessárias para executar com êxito. Além disso, que irá ser tomar riscos com a estabilidade da sua solução geral.

Problemas com o lado do servidor de automatização do escritório

Os programadores que tentarem utilizar o Office numa solução do lado do servidor necessitam de conhecer cinco áreas principais nesse Office funciona diferente antecipadas devido o ambiente. Se o código é executado com êxito, tem de resolvê-los e minimizar os respectivos efeitos quanto possíveis. Considere cuidadosamente estas questões ao compilar a aplicação. Uma solução não pode endereçar todos os problemas. Modelos diferentes requerem a dar prioridade os elementos diferentes.
  • Identidade de utilizador : aplicações do Office assumem uma identidade de utilizador quando as aplicações são executadas, mesmo quando automatização inicia as aplicações. As aplicações tentarem inicializar as barras de ferramentas, menus, opções, impressoras e alguns suplementos com base nas definições no ramo de registo de utilizador para o utilizador que inicia a aplicação. Muitos serviços são executados em contas que tenham não perfis de utilizador (tal como o sistema de conta ou contas IWAM_ [nomeservidor]). Por conseguinte, Office poderá não iniciar correctamente no arranque. Nesta situação, o Office devolve um erro na função CreateObject ou a função CoCreateInstance . Mesmo se a aplicação do Office pode ser iniciada, outras funções podem não funcionar correctamente se não existe nenhum perfil utilizador.
  • interactividade com o ambiente de trabalho : aplicações do Office assumem que estes são a ser executados num ambiente de trabalho interactivo. Em algumas circunstâncias, aplicações necessitar de ser tornada visível para determinadas funções de automatização funcionar correctamente. Se ocorrer um erro inesperado, ou se é necessário um parâmetro não especificado para concluir uma função, Office foi concebido para pedir ao utilizador com uma caixa de diálogo modal pede ao utilizador que o utilizador pretende efectuar. Uma caixa de diálogo modal num ambiente de trabalho não interactivo não pode ser dispensada. Portanto, esse thread deixa de responder (bloqueia) indefinidamente. Apesar de determinadas práticas de codificação podem ajudar a reduzir a probabilidade deste problema, estes procedimentos não impedirá o problema completamente. Este facto apenas permite executar aplicações do Office a partir de um ambiente do lado do servidor risco e não suportado.
  • reentrancy e escalabilidade : os componentes do servidor tem de ser altamente reentrantes, multi-threaded componentes do COM o mínimo sobrecarga e débitos elevados para vários clientes. As aplicações do Office estão em quase todos os aspectos exactamente oposto. As aplicações do Office são automatização não reentrant, com base em STA servidores concebidos para fornecer funcionalidade diversas mas que consome muitos recursos para um único cliente. As aplicações oferecem escalabilidade pouco como uma solução do lado do servidor. Além disso, as aplicações têm fixas limites para elementos importantes, tais como memória. Não pode ser alterados através da configuração. Mais importante ainda, as aplicações utilizam recursos globais, tais como memória mapeada ficheiros, suplementos globais ou modelos e partilhada automatização servidores. Isto pode limitar o número de instâncias que podem ser executados em simultâneo e provocar a condições de conflito entre tarefas concorrentes se as aplicações estiverem configuradas num ambiente multi-client. Os programadores que pretendam executar mais do que uma instância de qualquer aplicação do Office ao mesmo tempo ter em consideração "pooling" ou acesso a aplicação do Office para evitar potenciais bloqueios ou danos nos dados de serialização.
  • resistência e estabilidade : Office 2000, Office XP, Office 2003 e Office 2007 utilizam tecnologia do Microsoft Windows Installer (MSI) para efectuar a instalação e self-repair mais fácil para um utilizador final. MSI introduz o conceito de "instalado na primeira utilização". Isto permite funcionalidades para ser instalado ou configurado em tempo de execução para o sistema, ou mais frequentemente para um determinado utilizador dinamicamente. Num ambiente do lado do servidor, este mais lento desempenho tanto aumenta a probabilidade de é apresentada uma caixa de diálogo que solicita o utilizador para aprovar a instalação ou para fornecer um disco de instalação. Embora este esteja estruturado para aumentar a resistência do Office como um produto do utilizador final, implementação do Office do MSI capacidades é counterproductive num ambiente do lado do servidor. Além disso, a estabilidade do Office em geral não é garantia quando o Office é executado lado do servidor porque tem não foram concebida ou testada para este tipo de utilização. Utilizando o Office como um componente de serviço num servidor de rede pode reduzir a estabilidade do computador e, por isso, pode reduzir a estabilidade de toda a rede.
  • segurança do lado do servidor : aplicações do Office foram nunca destina lado do servidor. Por conseguinte, aplicações do Office não têm em consideração os problemas de segurança distribuídos face de componentes. O Office não autentica os pedidos recebidos. O Office também não protege de inadvertidamente executar macros ou de iniciar outro servidor que pode executar macros, do código do lado do servidor. não abra ficheiros que são enviados para o servidor de um Web site anónimo. Com base nas definições de segurança que foram definidas pela última vez, o servidor pode executar macros um contexto de administrador ou de sistema com todos os privilégios e, por isso, podem comprometer a sua rede. Para além disso, o Office utiliza muitos componentes do lado do cliente (tais como Simple MAPI, WinInet e MSDAIPP) que podem colocar em cache informações de autenticação de cliente a velocidade de processamento. Se Office está a ser server-side automatizada, uma instância poderá servir mais do que um cliente. Se as informações de autenticação foi colocado em cache para essa sessão, um cliente pode utilizar as credenciais em cache do cliente outro. Por conseguinte, o cliente poderá ter permissões de acesso não concedido por outros utilizadores a representar.
Além dos problemas técnicos, também deve considerar problemas de licenciamento. Directrizes de licenciamento actuais impedir aplicações Office a ser utilizada num servidor a pedidos de cliente do serviço, a menos que esses clientes próprios possuir licenciado cópias do Office. Utilizando a automatização do lado do servidor para fornecer funcionalidade Office estações de trabalho sem licença não está coberta por contrato de licença de utilizador final (EULA).

Em conjunto com estes problemas, um dos seguintes erros comuns pode ocorrer quando tenta automatização do Office lado do servidor:
  • A função CreateObject e a função CoCreateInstance retornar uma das seguintes mensagens de erro em tempo de execução e não podem ser iniciados para automatização.

    Mensagem 1
    Run-time error '429': o componente ActiveX não é possível criar o objecto
    Mensagem 2
    Run-time error '70': permissão negada
    Mensagem 3
    CO_E_SERVER_EXEC_FAILURE (0x80080005): Falha de execução Server
    Mensagem 4
    E_ACCESSDENIED (0 x 80070005): Acesso negado
  • Quando abre um documento do Office, receberá uma das seguintes mensagens de erro.

    Mensagem 1
    Run-time error '5981' (0x800A175D): não foi possível abrir o armazenamento da macro
    Mensagem 2
    Run-time error '1004': o método ' ~ 'do objecto' ~ ' falhou
  • A função CreateObject e a função CoCreateInstance deixar de responder e nunca concluir ou demorar muito tempo a devolver. Em alguns servidores, a criação é rápida, mas 1004 erros aparecem no registo de eventos do Windows que indicam que a aplicação foi parada.
  • Determinadas funções falharem inesperadamente ou deixar de responder indefinidamente devido a um alerta para um utilizador ou outra caixa de diálogo que requer a atenção do utilizador.
  • Com vários pedidos ou teste de stress faz com que o código de falha, deixar de responder ou falha na criação ou fim de um Office aplicação. Quando esta situação ocorre, ou o processo for deixado em execução no memória e não pode ser terminado ou todas as instâncias da aplicação que está a ser automatizado falha a partir desse momento no.
Outros problemas ou mensagens podem aparecer além das listadas aqui, mas estes problemas ocorrem normalmente como resultado dos problemas principais cinco que são listados anteriormente neste artigo.

Alternativas para a automatização do lado do servidor

A Microsoft recomenda vivamente que os programadores encontrar alternativas para a automatização do Office, se for necessário desenvolver soluções do lado do servidor. Devido às limitações à estrutura do Office, as alterações à 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 requerem o Office seja instalado lado do servidor, e que pode efectuar tarefas mais comuns mais eficiente e mais rapidamente do que automatização. Antes de envolvem Office como um componente do lado do servidor no projecto, considere alternativas.

A maior parte das tarefas de automatização lado do servidor envolvem a criação de documentos ou editar. O Office 2007 suporta novos formatos de ficheiro Open XML que permitem aos programadores criar, editar, ler e transformar conteúdo do ficheiro do lado do servidor. Estes formatos de ficheiro utilizam o espaço de nomes System.IO.Package.IO no 3.x Microsoft .NET Framework para editar ficheiros do Office sem utilizar o Office aplicações de cliente propriamente ditos. Este é o método suportado e recomendado para processar alterações a ficheiros do Office a partir de um serviço.

Open XML formatos de ficheiro constituem uma norma pública. Para obter uma cópia da especificação, visite o seguinte Web site:
http://www.ecma-international.org/publications/standards/Ecma-376.htm (http://www.ecma-international.org/publications/standards/Ecma-376.htm)
A Microsoft fornece um SDK para manipular os formatos de ficheiro Open XML do 3.x .NET Framework. Para obter mais informações sobre o SDK e sobre como utilizar o SDK para criar ou editar ficheiros de Open XML, visite os seguintes Web sites da Microsoft Developer Network (MSDN):
Documentação do SDK do XML aberto
http://msdn.microsoft.com/en-us/library/bb226703.aspx (http://msdn.microsoft.com/en-us/library/bb226703.aspx)
Como: manipular documentos formatos Open XML do Office
http://msdn.microsoft.com/en-us/library/aa982683.aspx (http://msdn.microsoft.com/en-us/library/aa982683.aspx)
Manipular ficheiros do Word 2007 com o modelo de objectos Open XML (parte 1 de 3)
http://msdn.microsoft.com/en-us/library/bb656295.aspx (http://msdn.microsoft.com/en-us/library/bb656295.aspx)
Manipular ficheiros do Word 2007 com o modelo de objectos Open XML (parte 2 de 3)
http://msdn.microsoft.com/en-us/library/bb739835.aspx (http://msdn.microsoft.com/en-us/library/bb739835.aspx)
Manipular ficheiros do Word 2007 com o modelo de objectos Open XML (parte 3 de 3)
http://msdn.microsoft.com/en-us/library/bb727374.aspx (http://msdn.microsoft.com/en-us/library/bb727374.aspx)
Manipular o Excel e PowerPoint 2007 ficheiros com o modelo de objectos Open XML (parte 1 de 2)
http://msdn.microsoft.com/en-us/library/bb739834.aspx (http://msdn.microsoft.com/en-us/library/bb739834.aspx)
Manipular o Excel e PowerPoint 2007 ficheiros com o modelo de objectos Open XML (parte 2 de 2)
http://msdn.microsoft.com/en-us/library/bb727373.aspx (http://msdn.microsoft.com/en-us/library/bb727373.aspx)
Criar soluções de geração de documentos do lado do servidor utilizando o modelo de objectos Open XML (parte 1 de 2)
http://msdn2.microsoft.com/en-us/library/bb735940.aspx (http://msdn2.microsoft.com/en-us/library/bb735940.aspx)
Criar soluções de geração de documentos do lado do servidor utilizando o modelo de objectos Open XML (parte 2 de 2)
http://msdn2.microsoft.com/en-us/library/bb735939.aspx (http://msdn2.microsoft.com/en-us/library/bb735939.aspx)
Para mais informações sobre como utilizar Open XML do .NET Framework 3.0 e para obter um exemplo, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
932921  (http://support.microsoft.com/kb/932921/ ) Como utilizar componentes do .NET Framework 3.0 para criar e, em seguida, a sequência Office Word 2007 documento e um livro do Office Excel 2007 num computador cliente
931866  (http://support.microsoft.com/kb/931866/ ) Como utilizar o formato de ficheiro XML do Office e os componentes de embalagem do .NET Framework 3.0 para criar um livro do Excel 2007 simples ou um documento do Word 2007 simples
Os utilizadores que tenham versões anteriores do Office (tais como o Office 2000, Office XP e Office 2003) podem visualizar e editar XML abrir ficheiros se instalarem o pack de compatibilidade livre transferir do Web site da Microsoft. Para transferir e instalar o pacote de compatibilidade, visite o seguinte Web site da Microsoft:
Microsoft Office Compatibility Pack para formatos de ficheiros Word, Excel e PowerPoint 2007
http://office.microsoft.com/en-us/products/HA101686761033.aspx (http://office.microsoft.com/en-us/products/HA101686761033.aspx)
Quando transmitir em sequência ficheiros de Open XML do ASP ou ASP.NET, tem de fornecer o tipo de MIME (Multipurpose Internet Mail Extension) correcto para o conteúdo que o fluxo. Para obter uma lista dos tipos de MIME para ficheiros do Office 2007, visite o seguinte Web site:
http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx (http://blogs.msdn.com/vsofficedeveloper/pages/Office-2007-Open-XML-MIME-Types.aspx)
Se alvo é apenas para clientes pre-Office 2007 e não pretender requerem a utilização do Open XML na solução, pode utilizar outros formatos de ficheiro de Office não binário, tais como HTML, XML e RTF. Em seguida, pode sequenciar estes ficheiros para um cliente utilizando um tipo de MIME, para que o texto resultante é apresentado no Office. O documento pode ser editado, guardado e mesmo devolvido para o servidor utilizando o ASP no servidor.

Para mais informações acerca dos tópicos de e para obter exemplos que mostram como implementá-las, clique números de artigo que se seguem para visualizar os artigos na base de dados de conhecimento da Microsoft:
270906  (http://support.microsoft.com/kb/270906/ ) Como utilizar o ASP para gerar um documento de Rich Text Format (RTF) para transmissão em sequência para o Microsoft Word
198703  (http://support.microsoft.com/kb/198703/ ) Como automatizar o Excel a partir de um VBScript do lado do cliente
199841  (http://support.microsoft.com/kb/199841/ ) Como apresentar ASP resultados utilizando o Excel no IE com tipos de MIME
260239  (http://support.microsoft.com/kb/260239/ ) Como formatar dados da célula quando estiver a criar um ficheiro do Excel com uma página Active Server Pages
278973  (http://support.microsoft.com/kb/278973/ ) ExcelADO demonstra como utilizar ADO para ler e escrever dados nos livros do Excel
286023  (http://support.microsoft.com/kb/286023/ ) Como utilizar um componente ActiveX VB para automatização do Word a partir do Internet Explorer
288130  (http://support.microsoft.com/kb/288130/ ) Como utilizar o ASP para criar a folha de cálculo XML para apresentação do lado do cliente
Se a empresa requer a criação do lado do servidor do Office 97, Office 2000, Office XP e formatos de ficheiro binário do Office 2003, fabricantes oferecem componentes que podem ajudá-lo. A Microsoft não fornece esses componentes, pelo que será necessário criar uma solução pessoalmente ou adquirir um de outro fornecedor. Existem muitos produtos diferentes de outros fabricantes. Deverá investigar cada solução para a melhor correspondência o fornecedor às suas necessidades empresariais. Se pretende criar a sua solução que edita o Office 97, Office 2000, Office XP, e formatos de ficheiro binário do Office 2003 directamente, é possível obter o ficheiro de formato especificações gratuitamente com os termos da Microsoft abrir especificação p/compromisso (OSP). Não existe suporte técnico está disponível para a documentação ou para os produtos que tenha criado, mas documentação está disponível. Para mais informações, visite o seguinte Web site:
http://www.microsoft.com/interop/docs/officebinaryformats.mspx (http://www.microsoft.com/interop/docs/officebinaryformats.mspx)
Soluções do lado do servidor também poderão pretender permitir aos utilizadores transferir ficheiros e, em seguida, tiver o servidor compor ficheiros para visualização na Web ou em outros mediums. A Microsoft está actualmente a funcionar para oferecer essas funcionalidades e fornece uma versão antiga desta funcionalidade no Microsoft Excel Services.

Excel Services é uma nova tecnologia de servidor que está incluído no Microsoft Office SharePoint Server 2007 e que permite-lhe carregar, calcular e apresentar livros do Excel no Office SharePoint Server 2007. Para obter mais informações sobre o Excel Services, visite os seguintes Web sites da Microsoft Developer Network (MSDN):
Descrição geral dos serviços de Excel
http://msdn.microsoft.com/en-us/library/ms546696.aspx (http://msdn.microsoft.com/en-us/library/ms546696.aspx)
Instruções: Desenvolver uma aplicação personalizada utilizando serviços Web do Excel
http://msdn2.microsoft.com/en-us/library/ms519100.aspx (http://msdn2.microsoft.com/en-us/library/ms519100.aspx)
Criar aplicações empresariais utilizando o Excel Services e o Office abrir formatos de XML
http://msdn.microsoft.com/en-us/library/cc540662.aspx (http://msdn.microsoft.com/en-us/library/cc540662.aspx)
Tem de avaliar a que as opções que este artigo descreve corresponde às suas necessidades e a melhor implementar a solução. Este artigo fornece as informações não é garantido que resolver todos os problemas para todos os clientes. São encorajados a testar exaustivamente a solução antes de implementar a solução.

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 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 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 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 Europe 2006
  • Microsoft Office OneNote 2003
  • Microsoft Office OneNote 2007
  • Microsoft Office InfoPath 2007
Palavras-chave: 
kbmt kbqfe kbautomation kbprogramming kbservice KB257757 KbMtpt
Tradução automáticaTraduçã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 revisto ou traduzido por humanos. A Microsoft tem artigos traduzidos por aplicações (MT) e artigos traduzidos por tradutores profissionais. O objectivo é simples: oferecer em Português a totalidade dos artigos existentes na base de dados do suporte. Sabemos no entanto que a tradução automática não é sempre perfeita. Esta pode conter erros de vocabulário, sintaxe ou gramática… erros semelhantes aos que um estrangeiro realiza ao falar em Português. A Microsoft não é responsável por incoerências, erros ou estragos realizados na sequência da utilização dos artigos MT por parte dos nossos clientes. A Microsoft realiza actualizações frequentes ao software de tradução automática (MT). Obrigado.
Clique aqui para ver a versão em Inglês deste artigo: 257757  (http://support.microsoft.com/kb/257757/en-us/ )
Partilhar
Opções de suporte adicionais
Fóruns de Suporte da Comunidade Microsoft
Contacte-nos directamente
Encontre um parceiro certificado Microsoft
Loja Microsoft