Aanmelden met Microsoft
Meld u aan of maak een account.
Hallo,
Selecteer een ander account.
U hebt meerdere accounts
Kies het account waarmee u zich wilt aanmelden.

Samenvatting

Ontwikkelaars kunnen Automation in Microsoft Office gebruiken om aangepaste oplossingen te bouwen die gebruikmaken van de mogelijkheden en functies die zijn ingebouwd in het Office-product. Hoewel een dergelijke programmatische ontwikkeling relatief eenvoudig op een clientsysteem kan worden geïmplementeerd, kunnen er een aantal complicaties optreden als automation plaatsvindt via code aan de serverzijde, zoals Microsoft Active Server Pages (ASP), ASP.NET, DCOM of een Windows NT-service.

In dit artikel worden de complicaties besproken waarmee ontwikkelaars te maken kunnen krijgen. Het artikel biedt ook alternatieven voor Automation waarmee de prestaties kunnen worden versneld. Ontwikkelaars moeten er echter rekening mee houden dat de suggesties die in dit artikel worden geboden, alleen ter informatie dienen. Microsoft adviseert of ondersteunt geen automatisering van Office aan de serverzijde.

Opmerking: In deze context worden de Access Database Engine Redistributable en Access Runtime beschouwd als Microsoft Office-onderdelen. De term 'serverzijde' is ook van toepassing op code die wordt uitgevoerd op een Windows-werkstation, als de code wordt uitgevoerd vanaf een ander Windows-werkstation dan het interactieve station van de gebruiker die is aangemeld. Code die wordt gestart door Task Scheduler onder het SYSTEM-account wordt bijvoorbeeld uitgevoerd in dezelfde omgeving als ASP-code aan de serverzijde of als DCOM-code. Daarom kunnen veel van de problemen die in dit artikel worden beschreven, optreden. Zie de sectie 'Meer informatie' en de sectie 'Verwijzingen' voor meer informatie over Windows-werkstations en over COM.

Meer informatie

Alle huidige versies van Microsoft Office zijn ontworpen, getest en geconfigureerd om te worden uitgevoerd als producten van eindgebruikers op een clientwerkstation. Ze gaan uit van een interactief bureaublad en gebruikersprofiel. Ze bieden niet het niveau van reentrancy of beveiliging dat nodig is om te voldoen aan de behoeften van onderdelen aan de serverzijde die zijn ontworpen om onbeheerd te worden uitgevoerd.

Microsoft raadt momenteel geen automatisering van Microsoft Office-toepassingen aan vanuit een niet-interactieve clienttoepassing of onderdeel zonder toezicht (waaronder ASP, ASP.NET, DCOM en NT Services), omdat Office instabiel gedrag en/of impasse kan vertonen wanneer Office in deze omgeving wordt uitgevoerd.

Als u een oplossing bouwt die wordt uitgevoerd in een context aan de serverzijde, moet u proberen onderdelen te gebruiken die veilig zijn gemaakt voor uitvoering zonder toezicht. Of u moet proberen alternatieven te vinden waarmee ten minste een deel van de code aan de clientzijde kan worden uitgevoerd. Als u een Office-toepassing van een oplossing aan de serverzijde gebruikt, ontbreekt de toepassing aan veel van de benodigde mogelijkheden om succesvol uit te voeren. Daarnaast neemt u risico's met de stabiliteit van uw algehele oplossing.

Problemen met het gebruik van automatisering aan de serverzijde van Office

Ontwikkelaars die Office proberen te gebruiken in een oplossing aan de serverzijde, moeten zich bewust zijn van vijf belangrijke gebieden waarin Office zich anders gedraagt dan verwacht vanwege de omgeving. Als uw code moet worden uitgevoerd, moet u deze problemen oplossen en de effecten ervan zoveel mogelijk minimaliseren. Houd deze problemen zorgvuldig in overweging wanneer u uw toepassing bouwt. Eén oplossing kan niet alle problemen oplossen. Voor verschillende ontwerpen moet u de elementen anders prioriteren.

  • Gebruikersidentiteit: Office-toepassingen gaan uit van een gebruikersidentiteit wanneer de toepassingen worden uitgevoerd, zelfs wanneer Automation de toepassingen start. De toepassingen proberen werkbalken, menu's, opties, printers en sommige invoegtoepassingen te initialiseren op basis van instellingen in het gebruikersregister voor de gebruiker die de toepassing start. Veel services worden uitgevoerd onder accounts die geen gebruikersprofielen hebben (zoals het SYSTEM-account of de IWAM_[servernaam] accounts). Daarom wordt Office mogelijk niet correct geïnitialiseerd bij het opstarten. In deze situatie retourneert Office een fout in de functie CreateObject of de functie CoCreateInstance. Zelfs als de Office-toepassing kan worden gestart, werken andere functies mogelijk niet correct als er geen gebruikersprofiel bestaat.

  • Interactiviteit met het bureaublad: Office-toepassingen gaan ervan uit dat ze worden uitgevoerd onder een interactief bureaublad. In sommige omstandigheden moeten toepassingen mogelijk zichtbaar worden gemaakt om bepaalde Automation-functies correct te laten werken. Als er een onverwachte fout optreedt of als er een niet-opgegeven parameter nodig is om een functie te voltooien, is Office ontworpen om de gebruiker te vragen een modaal dialoogvenster te geven waarin de gebruiker wordt gevraagd wat de gebruiker wil doen. Een modaal dialoogvenster op een niet-interactief bureaublad kan niet worden gesloten. Daarom reageert die thread niet meer (loopt vast) voor onbepaalde tijd. Hoewel bepaalde coderingsmethoden de kans op dit probleem kunnen verminderen, kunnen deze procedures het probleem niet volledig voorkomen. Alleen al dit feit maakt het uitvoeren van Office-toepassingen vanuit een omgeving aan de serverzijde riskant en niet-ondersteund.

  • Reentrancy en schaalbaarheid: Onderdelen aan de serverzijde moeten zeer nieuwe COM-onderdelen met meerdere threads zijn met minimale overhead en hoge doorvoer voor meerdere clients. Office-toepassingen zijn in bijna alle opzichten precies het tegenovergestelde. Office-toepassingen zijn niet-nieuwe, op STA gebaseerde Automation-servers die zijn ontworpen om diverse, maar resource-intensieve functionaliteit te bieden voor één client. De toepassingen bieden weinig schaalbaarheid als oplossing aan de serverzijde. Daarnaast hebben de toepassingen vaste limieten voor belangrijke elementen, zoals geheugen. Deze kunnen niet worden gewijzigd via de configuratie. Nog belangrijker is dat de toepassingen gebruikmaken van wereldwijde resources, zoals geheugentoewijzingsbestanden, globale invoegtoepassingen of sjablonen en gedeelde Automation-servers. Dit kan het aantal exemplaren beperken dat gelijktijdig kan worden uitgevoerd en kan leiden tot raceomstandigheden als de toepassingen zijn geconfigureerd in een omgeving met meerdere clients. Ontwikkelaars die van plan zijn om meer dan één exemplaar van een Office-toepassing tegelijk uit te voeren, moeten overwegen toegang tot de Office-toepassing te groeperen of te serialiseren om mogelijke impasses of beschadiging van gegevens te voorkomen.

  • Tolerantie en stabiliteit: Office 2000, Office XP, Office 2003 en Office 2007 maken gebruik van MSI-technologie (Microsoft Windows Installer) om de installatie en zelfherstel voor een eindgebruiker gemakkelijker te maken. MSI introduceert het concept 'installeren bij eerste gebruik'. Hierdoor kunnen functies dynamisch worden geïnstalleerd of geconfigureerd tijdens runtime voor het systeem, of vaker voor een bepaalde gebruiker. In een omgeving aan de serverzijde vertraagt dit de prestaties en verhoogt het de kans dat er een dialoogvenster wordt weergegeven waarin de gebruiker wordt gevraagd de installatie goed te keuren of een installatieschijf op te geven. Hoewel dit is ontworpen om de tolerantie van Office als product voor eindgebruikers te vergroten, is de implementatie van MSI-mogelijkheden van Office contraproductief in een omgeving aan de serverzijde. Bovendien kan de stabiliteit van Office in het algemeen niet worden gegarandeerd wanneer Office aan de serverzijde wordt uitgevoerd, omdat het niet is ontworpen of getest voor dit type gebruik. Het gebruik van Office als een serviceonderdeel op een netwerkserver kan de stabiliteit van die computer verminderen en daarom de stabiliteit van uw hele netwerk verminderen.

  • Beveiliging aan de serverzijde: Office-toepassingen zijn nooit bedoeld voor gebruik aan de serverzijde. Daarom houden Office-toepassingen geen rekening met de beveiligingsproblemen waarmee gedistribueerde onderdelen worden geconfronteerd. In Office worden binnenkomende aanvragen niet geverifieerd. Office beschermt u ook niet tegen het onbedoeld uitvoeren van macro's of tegen het starten van een andere server waarop macro's kunnen worden uitgevoerd, tegen uw servercode. Open geen bestanden die vanaf een anonieme website naar de server zijn geüpload. Op basis van de beveiligingsinstellingen die voor het laatst zijn ingesteld, kan de server macro's uitvoeren onder een administrator- of systeemcontext met volledige bevoegdheden en kan daarom uw netwerk in gevaar komen. Daarnaast gebruikt Office veel onderdelen aan de clientzijde (zoals Simple MAPI, WinInet en MSDAIPP) die clientverificatiegegevens in de cache kunnen opslaan om de verwerking te versnellen. Als Office aan de serverzijde wordt geautomatiseerd, kan één exemplaar meer dan één client onderhouden. Als verificatiegegevens voor die sessie in de cache zijn opgeslagen, kan de ene client de referenties van een andere client in de cache gebruiken. Daarom kan de client niet-verleende toegangsmachtigingen verkrijgen door andere gebruikers te imiteren.

Naast de technische problemen moet u ook rekening houden met licentieproblemen. De huidige licentierichtlijnen voorkomen dat Office-toepassingen op een server worden gebruikt om clientaanvragen te verwerken, tenzij deze clients zelf kopieën van Office hebben gelicentieerd. Het gebruik van Automatisering aan de serverzijde om Office-functionaliteit te bieden aan werkstations zonder licentie wordt niet gedekt door de gebruiksrechtovereenkomst (EULA).

Naast deze problemen kunnen een van de volgende veelvoorkomende fouten optreden wanneer u probeert office-serverzijde te automatiseren:

  • De functie CreateObject en de functie CoCreateInstance retourneren een van de volgende runtime-foutberichten en kunnen niet worden gestart voor Automation.

    Bericht 1

    Runtimefout '429': ActiveX-onderdeel kan geen object maken

    Bericht 2

    Runtimefout '70': Machtiging geweigerd

    Bericht 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): serveruitvoering is mislukt

    Bericht 4

    E_ACCESSDENIED (0x80070005): toegang geweigerd

  • Wanneer u een Office-document opent, ontvangt u een van de volgende foutberichten.

    Bericht 1

    Runtimefout '5981' (0x800A175D): kan macroopslag niet openen

    Bericht 2

    Runtimefout '1004': methode '~' van object '~' is mislukt

  • De functie CreateObject en de functie CoCreateInstance reageren niet meer en zijn nooit voltooid, of het duurt lang om terug te keren. Op sommige servers is het maken snel, maar er worden 1004-fouten weergegeven in het Windows-gebeurtenislogboek die aangeven dat de toepassing is gestopt.

  • Bepaalde functies mislukken onverwacht of reageren niet meer voor onbepaalde tijd vanwege een waarschuwing van de gebruiker of een ander dialoogvenster dat aandacht van de gebruiker vereist.

  • Het uitvoeren van meerdere aanvragen of stresstests zorgt ervoor dat de code mislukt, niet meer reageert of vastloopt bij het maken of beëindigen van een Office-toepassing. Wanneer dit gebeurt, blijft het proces actief in het geheugen en kan het niet worden beëindigd, of mislukken alle exemplaren van de toepassing die wordt geautomatiseerd vanaf dat punt.

Naast de problemen die hier worden vermeld, kunnen andere problemen of berichten worden weergegeven, maar deze problemen treden meestal op als gevolg van de vijf belangrijkste problemen die eerder in dit artikel worden vermeld. 

Alternatieven voor automatisering aan de serverzijde

Microsoft raadt ontwikkelaars ten zeerste aan alternatieven te vinden voor Automation of Office als ze oplossingen aan de serverzijde moeten ontwikkelen. Vanwege de beperkingen in het ontwerp van Office zijn wijzigingen in de Office-configuratie niet voldoende om alle problemen op te lossen. Microsoft raadt ten zeerste een aantal alternatieven aan waarvoor Office niet op de server hoeft te worden geïnstalleerd en die de meest voorkomende taken efficiënter en sneller kunnen uitvoeren dan Automation. Voordat u Office als een onderdeel aan de serverzijde in uw project gebruikt, moet u alternatieven overwegen.

De meeste automatiseringstaken aan de serverzijde omvatten het maken of bewerken van documenten. Office 2007 ondersteunt nieuwe Open XML-bestandsindelingen waarmee ontwikkelaars bestandsinhoud aan de serverzijde kunnen maken, bewerken, lezen en transformeren. Deze bestandsindelingen gebruiken de System.IO.Package.IO naamruimte in het Microsoft .NET 3.x Framework om Office-bestanden te bewerken zonder de Office-clienttoepassingen zelf te gebruiken. Dit is de aanbevolen en ondersteunde methode voor het afhandelen van wijzigingen in Office-bestanden van een service.

De Open XML-bestandsindelingen zijn een openbare standaard. 


Microsoft biedt een SDK voor het bewerken van Open XML-bestandsindelingen vanuit het .NET 3.x Framework. Ga naar de volgende MSDN-websites (Microsoft Developer Network) voor meer informatie over de SDK en over het gebruik van de SDK om Open XML-bestanden te maken of te bewerken:

Documentatie voor Open XML SDK

Procedure: Documenten met Office Open XML-indelingen bewerken

Bewerken van Word 2007-bestanden met het Open XML-objectmodel (deel 1 van 3)

Bewerken van Word 2007-bestanden met het Open XML-objectmodel (deel 2 van 3)

Bewerken van Word 2007-bestanden met het Open XML-objectmodel (deel 3 van 3)

Excel 2007- en PowerPoint 2007-bestanden bewerken met het Open XML-objectmodel (deel 1 van 2)

Excel 2007- en PowerPoint 2007-bestanden bewerken met het Open XML-objectmodel (deel 2 van 2)

Oplossingen voor het genereren van Server-Side documenten bouwen met behulp van het Open XML-objectmodel (deel 1 van 2)

Oplossingen voor het genereren van Server-Side documenten bouwen met behulp van het Open XML-objectmodel (deel 2 van 2)

Wanneer u Open XML-bestanden streamt vanuit ASP of vanuit ASP.NET, moet u het juiste MIME-type (Multipurpose Internet Mail Extension) opgeven voor de inhoud die u streamt. Ga naar de volgende website voor een overzicht van de MIME-typen voor Office 2007-bestanden:

MIME-typen Office 2007-bestandsindeling voor het streamen van HTTP-inhoud

Als u zich alleen richt op clients van vóór Office 2007 en u het gebruik van Open XML in de oplossing niet wilt vereisen, kunt u andere niet-binaire Office-bestandsindelingen gebruiken, zoals HTML, XML en RTF. U kunt deze bestanden vervolgens streamen naar een client met behulp van een MIME-type, zodat de resulterende tekst wordt weergegeven in Office. Het document kan worden bewerkt, opgeslagen en zelfs geretourneerd naar de server met behulp van ASP op de server.

Klik op de volgende artikelnummers om de artikelen in de Microsoft Knowledge Base weer te geven voor meer informatie over een van deze onderwerpen en voor voorbeelden die laten zien hoe u deze kunt implementeren:

198703 Excel automatiseren vanaf een VBScript aan de clientzijde

Excel-gegevens opvragen en bijwerken met behulp van ADO van ASP

286023 Een VB ActiveX-onderdeel gebruiken voor Word automatisering vanuit Internet Explorer
 

Als uw bedrijf het maken van de binaire bestandsindelingen voor Office 97, Office 2000, Office XP en Office 2003 op de server vereist, bieden externe leveranciers onderdelen die u kunnen helpen. Microsoft biedt dergelijke onderdelen niet, dus u moet zelf een oplossing bouwen of er een aanschaffen bij een externe leverancier. Er zijn veel verschillende producten van derden beschikbaar. U moet elke oplossing onderzoeken om de leverancier het beste af te stemmen op de behoeften van uw bedrijf.

Als u uw eigen oplossing wilt bouwen waarmee de binaire bestandsindelingen van Office 97, Office 2000, Office XP en Office 2003 rechtstreeks worden bewerkt, kunt u de specificaties van de bestandsindeling gratis verkrijgen onder de voorwaarden van de Microsoft Open Specification Promise (OSP). Er is geen technische ondersteuning beschikbaar voor de documentatie of voor de producten die u maakt, maar er is wel documentatie beschikbaar. 


Oplossingen aan de serverzijde willen mogelijk ook toestaan dat gebruikers bestanden uploaden en vervolgens de server de bestanden laten weergeven voor weergave op het web of op andere mediums. Microsoft werkt momenteel aan het aanbieden van dergelijke functies en biedt een vroege versie van deze mogelijkheid in Microsoft Excel Services.

Excel Services is een nieuwe servertechnologie die is opgenomen in Microsoft Office SharePoint Server 2007 en waarmee u Excel-werkmappen in Office SharePoint Server 2007 kunt laden, berekenen en weergeven. Ga naar de volgende MSDN-websites (Microsoft Developer Network) voor meer informatie over Excel Services:

overzicht van Excel Services

Overzicht: Een aangepaste toepassing ontwikkelen met behulp van Excel Web Services

Zakelijke toepassingen maken met behulp van Excel Services- en Office Open XML-indelingen Word Automation Services is een nieuwe servicetoepassing in SharePoint Server 2010. Word Automation Services biedt onbeheerde conversie van documenten aan de serverzijde naar indelingen die worden ondersteund door de Microsoft Word-clienttoepassing.

Overzicht van Word Automation Services

Inleiding tot Word Automation Services U moet evalueren welke van de opties die in dit artikel worden beschreven, past bij uw behoeften en hoe u uw oplossing het beste kunt implementeren. De informatie die in dit artikel wordt verstrekt, is niet gegarandeerd dat alle problemen voor alle clients worden opgelost. U wordt aangeraden uw oplossing grondig te testen voordat u de oplossing implementeert.

Meer hulp nodig?

Meer opties?

Verken abonnementsvoordelen, blader door trainingscursussen, leer hoe u uw apparaat kunt beveiligen en meer.

Community's helpen u vragen te stellen en te beantwoorden, feedback te geven en te leren van experts met uitgebreide kennis.

Was deze informatie nuttig?

Hoe tevreden bent u met de taalkwaliteit?
Wat heeft uw ervaring beïnvloed?
Als u op Verzenden klikt, wordt uw feedback gebruikt om producten en services van Microsoft te verbeteren. Uw IT-beheerder kan deze gegevens verzamelen. Privacyverklaring.

Hartelijk dank voor uw feedback.

×