Kirjaudu sisään Microsoft-tilillä
Kirjaudu sisään tai luo tili.
Hei,
Käytä toista tiliä.
Sinulla on useita tilejä
Valitse tili, jolla haluat kirjautua sisään.

Yhteenveto

Kehittäjät voivat luoda Microsoft Officen automaation avulla mukautettuja ratkaisuja, jotka käyttävät Office-tuotteeseen sisältyviä ominaisuuksia ja ominaisuuksia. Vaikka ohjelmallinen kehitys voidaan toteuttaa asiakasjärjestelmässä suhteellisen helposti, voi ilmetä useita ongelmia, jos automaatio tapahtuu palvelinpuolen koodista, kuten Microsoft Active Server Pages (ASP), ASP.NET, DCOM tai Windows NT palvelu.

Tässä artikkelissa käsitellään kehittäjien kohtaamia ongelmia. Artikkelissa on myös vaihtoehtoja automaatiolle, jotka nopeuttavat suorituskykyä. Kehittäjien tulisi kuitenkin olla tietoisia siitä, että tämän artikkelin ehdotukset on tarkoitettu vain tiedoksi. Microsoft ei suosittele tai tue Officen palvelinpuolen automaatiota.

Huomautus: Tässä yhteydessä Access-tietokantamoduulin uudelleenjakamista ja Access Runtimea pidetään Microsoft Office -komponentteina. Termi "palvelinpuoli" koskee myös koodia, joka suoritetaan Windowsin työasemalla, jos koodi on käynnissä muusta Windows-työasemasta kuin kirjautuneen käyttäjän vuorovaikutteisesta asemasta. Esimerkiksi System-tilin Tehtävien ajoituksen käynnistämä koodi toimii samassa ympäristössä kuin "palvelinpuolen" ASP-koodi tai DCOM-koodi. Siksi monet tämän artikkelin kuvaamista ongelmista voivat ilmetä. Lisätietoja Windowsin työasemista ja COM-toiminnosta on Lisätietoja-osassa ja Viittaukset-osassa.

Lisätietoja

Kaikki Microsoft Officen nykyiset versiot on suunniteltu, testattu ja määritetty toimimaan loppukäyttäjätuotteina asiakkaan työasemalla. He olettavat vuorovaikutteisen työpöytä- ja käyttäjäprofiilin. Ne eivät tarjoa sellaista uudelleensopivuuden tai suojauksen tasoa, joka on tarpeen niiden palvelinpuolen osien tarpeiden täyttämiseksi, jotka on suunniteltu toimimaan ilman valvontaa.

Microsoft ei tällä hetkellä suosittele eikä tue Microsoft Office -sovellusten automatisointia mistään valvomattomasta, ei-vuorovaikutteisesta asiakassovelluksesta tai -osasta (mukaan lukien ASP, ASP.NET, DCOM ja NT Services), koska Office saattaa toimia epävakaasti ja/tai lukkiutuu, kun Officea käytetään tässä ympäristössä.

Jos luot ratkaisua, joka suoritetaan palvelinpuolen kontekstissa, yritä käyttää komponentteja, jotka on tehty turvallisiksi automaattiseen suorittamiseen. Voit myös etsiä vaihtoehtoja, joiden avulla vähintään osa koodista voi suorittaa asiakaspuolen. Jos käytät Office-sovellusta palvelinpuolen ratkaisusta, sovelluksella ei ole monia tarvittavia ominaisuuksia onnistuneeseen suorittamiseen. Lisäksi otat riskejä yleisen ratkaisusi vakauden avulla.

Officen palvelinpuolen automaation käyttöön liittyvät ongelmat

Kehittäjien, jotka yrittävät käyttää Officea palvelinpuolen ratkaisussa, on oltava tietoisia viidestä pääalueista, joilla Office toimii odotetulla tavalla ympäristön vuoksi. Jos koodin suorittaminen onnistuu, sinun on puututtava näihin ongelmiin ja minimoitava niiden vaikutukset mahdollisimman paljon. Harkitse näitä ongelmia huolellisesti, kun luot sovelluksen. Yksi ratkaisu ei voi ratkaista kaikkia ongelmia. Eri ulkoasut edellyttävät elementtien priorisointia eri tavalla.

  • Käyttäjätiedot: Office-sovelluksissa oletetaan käyttäjätiedot, kun sovelluksia suoritetaan, myös silloin, kun automaatio käynnistää sovellukset. Sovellukset yrittävät alustaa työkalurivit, valikot, asetukset, tulostimet ja jotkin apuohjelmat sovelluksen käynnistävän käyttäjän rekisterirakenteen asetusten perusteella. Monet palvelut suoritetaan tileillä, joilla ei ole käyttäjäprofiileja (kuten SYSTEM-tili tai IWAM_[palvelimennimi]-tilit). Siksi Office ei ehkä alusta oikein käynnistyksen yhteydessä. Tässä tilanteessa Office palauttaa virheen CreateObject-funktiossa tai CoCreateInstance-funktiossa. Vaikka Office-sovellus voitaisiin käynnistää, muut funktiot eivät ehkä toimi oikein, jos käyttäjäprofiilia ei ole.

  • Työpöydän vuorovaikutteisuus: Office-sovellukset olettavat, että niitä käytetään vuorovaikutteisessa työpöydällä. Joissakin tilanteissa sovellukset on ehkä tehtävä näkyviksi, jotta tietyt automaatiofunktiot toimivat oikein. Jos tapahtuu odottamaton virhe tai jos funktion suorittamiseen tarvitaan määrittämätön parametri, Office on suunniteltu antamaan käyttäjälle modaalinen valintaikkuna, jossa kysytään käyttäjältä, mitä käyttäjä haluaa tehdä. Ei-vuorovaikutteisen työpöydän modaalista valintaikkunaa ei voi hylätä. Siksi tämä säie lakkaa vastaamasta (jumittuu) määräämättömäksi ajaksi. Vaikka tietyt koodauskäytännöt voivat auttaa vähentämään ongelman todennäköisyyttä, nämä käytännöt eivät voi estää ongelmaa kokonaan. Pelkästään tämän tosiasian vuoksi Office-sovellusten suorittaminen palvelinpuolen ympäristöstä on riskialtista eikä sitä tueta.

  • Uudelleensyötettävyys ja skaalattavuus: Palvelinpuolen osien on oltava erittäin uudelleensyntyneet, monisäikeiset COM-komponentit, joilla on pienin ylitys ja suuri siirtonopeus useille asiakkaille. Office-sovellukset ovat lähes kaikissa suhteissa täysin päinvastaisia. Office-sovellukset ovat ei-uudelleensyntyviä, STA-pohjaisia automaatiopalvelimia, jotka on suunniteltu tarjoamaan monipuolisia mutta resurssiintensiivisiä toimintoja yhdelle asiakkaalle. Sovellukset eivät tarjoa juurikaan skaalautuvuutta palvelinpuolen ratkaisuna. Lisäksi sovelluksilla on kiinteät rajoitukset tärkeille elementeille, kuten muistille. Näitä ei voi muuttaa määrityksen avulla. Vielä tärkeämpää on, että sovellukset käyttävät yleisiä resursseja, kuten muistiin yhdistettyjä tiedostoja, yleisiä apuohjelmia tai malleja sekä jaettuja automaatiopalvelimia. Tämä voi rajoittaa samanaikaisesti suoritettavien esiintymien määrää ja johtaa kilpailuolosuhteisiin, jos sovellukset on määritetty usean asiakkaan ympäristössä. Kehittäjien, jotka suunnittelevat suorittavansa useamman kuin yhden Office-sovelluksen esiintymän samanaikaisesti, on harkittava Office-sovelluksen käyttöoikeuksien yhdistämistä tai sarjoittamista mahdollisten lukkiutuneiden tai tietojen vioittumisen välttämiseksi.

  • Resilienssi ja vakaus: Office 2000, Office XP, Office 2003 ja Office 2007 käyttävät Microsoft Windows Installer (MSI) -tekniikkaa helpottaakseen loppukäyttäjän asentamista ja itsekorjausta. MSI ottaa käyttöön käsitteen "asenna ensimmäisellä käyttökerlalla". Tämä mahdollistaa ominaisuuksien dynaamisen asentamisen tai määrittämisen järjestelmän suoritushetkellä tai useammin tietylle käyttäjälle. Palvelinpuolen ympäristössä tämä sekä hidastaa suorituskykyä että lisää todennäköisyyttä, että näyttöön tulee valintaikkuna, jossa käyttäjää pyydetään hyväksymään asennus tai antamaan asennuslevy. Vaikka tämä on suunniteltu lisäämään Officen sinnikkyyttä loppukäyttäjätuotteena, Officen MSI-ominaisuuksien käyttöönotto on haitallista palvelinpuolen ympäristössä. Lisäksi Officen vakautta yleensä ei voida taata, kun Officea käytetään palvelinpuolena, koska sitä ei ole suunniteltu tai testattu tämäntyyppistä käyttöä varten. Officen käyttäminen verkkopalvelimen palvelukomponenttina voi heikentää tietokoneen vakautta ja siten koko verkon vakautta.

  • Palvelinpuolen suojaus: Office-sovelluksia ei ole koskaan tarkoitettu palvelinpuolen käyttöön. Siksi Office-sovelluksissa ei oteta huomioon hajautettujen osien tietoturvaongelmia. Office ei todenna saapuvia pyyntöjä. Office ei myöskään suojaa sinua vahingossa suoritettavilta makroilta tai käynnistämästä palvelinpuolen koodista toista palvelinta, joka saattaa suorittaa makroja. Älä avaa tiedostoja, jotka ladataan palvelimeen anonyymistä verkkosivustosta. Viimeksi määritettyjen suojausasetusten perusteella palvelin voi suorittaa makroja järjestelmänvalvojan tai järjestelmän kontekstissa täysillä oikeuksilla ja siten vaarantaa verkon. Lisäksi Office käyttää monia asiakaspuolen osia (kuten Simple MAPI, WinInet ja MSDAIPP), jotka voivat välimuistiin asiakkaan todennustietoja käsittelyn nopeuttamiseksi. Jos Office on automatisoitu palvelinpuoli, yksi esiintymä voi huoltaa useita asiakkaita. Jos kyseisen istunnon todennustiedot on tallennettu välimuistiin, yksi asiakas voi käyttää toisen asiakkaan välimuistissa olevia tunnistetietoja. Tämän vuoksi asiakas voi saada käyttöoikeuksia, joita ei ole myönnetty, tekeytymällä muksi käyttäjiksi.

Teknisten ongelmien lisäksi sinun on otettava huomioon myös käyttöoikeusongelmat. Nykyiset käyttöoikeusohjeet estävät Office-sovellusten käytön palvelimessa asiakaspyyntöjen palvelemiseen, elleivät kyseiset asiakkaat itse ole lisensoineet Officen kopioita. Käyttöoikeussopimus (Käyttöoikeussopimus) ei koske palvelinpuolen automaation käyttämistä Office-toimintojen tarjoamiseksi käyttöoikeudettomille työasemille.

Näiden ongelmien lisäksi saattaa ilmetä jokin seuraavista yleisistä virheistä, kun yrität automatisoida Office-palvelinpuolen:

  • CreateObject-funktio ja CoCreateInstance-funktio palauttavat jonkin seuraavista suorituksenaikaisesta virhesanomista, eikä niitä voi käynnistää automaatiota varten.

    Viesti 1

    Suorituksenaikainen virhe '429': ActiveX-komponentti ei voi luoda objektia

    Viesti 2

    Suorituksenaikainen virhe '70': Käyttöoikeus estetty

    Viesti 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): Palvelimen suorittaminen epäonnistui

    Viesti 4

    E_ACCESSDENIED (0x80070005): Käyttö estetty

  • Kun avaat Office-asiakirjan, saat jonkin seuraavista virhesanomista.

    Viesti 1

    Suorituksenaikainen virhe 5981 (0x800A175D): Makron tallennustilaa ei voitu avata

    Viesti 2

    Suorituksenaikainen virhe '1004': Menetelmä '~' objektille '~' epäonnistui

  • CreateObject-funktio ja CoCreateInstance-funktio lakkaavat vastaamasta, eivätkä ne lopu koskaan, tai palaaminen kestää kauan. Joissakin palvelimissa luonti on nopeaa, mutta Windowsin tapahtumalokissa näkyy 1 004 virhettä, jotka osoittavat, että sovellus pysäytettiin.

  • Tietyt funktiot epäonnistuvat odottamatta tai lakkaavat vastaamasta määräämättömäksi ajaksi käyttäjän toimia edellyttävästä käyttäjäilmoituksesta tai muusta valintaikkunasta johtuen.

  • Useiden pyyntöjen tai stressitestauksen suorittaminen aiheuttaa koodin epäonnistumisen, vastaamisen lopettamisen tai kaatumisen Office-sovelluksen luomisen tai lopettamisen yhteydessä. Kun näin tapahtuu, prosessi jää käynnissä muistiin eikä sitä voi lopettaa, tai kaikki automaattisen sovelluksen esiintymät epäonnistuvat tästä lähtien.

Tässä lueteltujen ongelmien lisäksi voi ilmetä muita ongelmia tai viestejä, mutta nämä ongelmat johtuvat yleensä viidestä pääongelmasta, jotka on lueteltu aiemmin tässä artikkelissa. 

Vaihtoehdot palvelinpuolen automaatiolle

Microsoft suosittelee vahvasti, että kehittäjät löytävät vaihtoehtoja Officen automaatiolle, jos heidän on kehitettävä palvelinpuolen ratkaisuja. Officen rakenteen rajoitusten vuoksi Office-kokoonpanoon tehdyt muutokset eivät riitä kaikkien ongelmien ratkaisemiseen. Microsoft suosittelee vahvasti useita vaihtoehtoja, jotka eivät edellytä Officen asentamista palvelinpuolen kautta ja jotka voivat suorittaa yleisimpiä tehtäviä tehokkaammin ja nopeammin kuin automaatio. Ennen kuin otat Officen mukaan projektiin palvelinpuolena, harkitse vaihtoehtoja.

Useimmat palvelinpuolen automaatiotehtävät edellyttävät tiedostojen luomista tai muokkaamista. Office 2007 tukee uusia Open XML -tiedostomuotoja, joiden avulla kehittäjät voivat luoda, muokata, lukea ja muuntaa tiedostosisältöä palvelimen puolella. Nämä tiedostomuodot käyttävät Microsoft .NET 3.x Frameworkin System.IO.Package.IO nimitilaa Office-tiedostojen muokkaamiseen käyttämättä Itse Office-asiakassovelluksia. Tämä on suositeltu ja tuettu tapa käsitellä Office-tiedostoihin tehtyjä muutoksia palvelusta.

Open XML -tiedostomuodot ovat julkinen standardi. 


Microsoft tarjoaa SDK:n Open XML -tiedostomuotojen käsittelyyn .NET 3.x Frameworkista. Lisätietoja ohjelmankehityspaketin käyttämisestä ja Open XML -tiedostojen luomisesta tai muokkaamisesta on seuraavissa Microsoft Developer Network (MSDN) -sivustoissa:

Open XML SDK Documentation

Toimintaohjeet: Office Open XML -muotojen tiedostojen käsitteleminen

Word 2007 -tiedostojen käsitteleminen Open XML -objektimallilla (osa 1/3)

Word 2007 -tiedostojen käsitteleminen Open XML -objektimallilla (osa 2/3)

Word 2007 -tiedostojen käsitteleminen Open XML -objektimallilla (osa 3/3)

Excel 2007- ja PowerPoint 2007 -tiedostojen käsitteleminen Open XML -objektimallilla (osa 1/2)

Excel 2007- ja PowerPoint 2007 -tiedostojen käsitteleminen Open XML -objektimallilla (osa 2/2)

Asiakirjan luontiratkaisujen luominen Server-Side Open XML -objektimallin avulla (osa 1/2)

Server-Side tiedostojen luontiratkaisujen luominen Open XML -objektimallin avulla (osa 2/2)

Kun suoratoistat Open XML -tiedostoja ASP:stä tai ASP.NET, sinun on annettava oikea Multipurpose Internet Mail Extension (MIME) -tyyppi suoratoistettavalle sisällölle. Luettelo Office 2007 -tiedostojen MIME-tyypeistä on seuraavassa verkkosivustossa:

Office 2007 -tiedostomuodon MIME-tyypit HTTP-sisällön suoratoistoa varten

Jos kohdennat vain office 2007 -asiakasohjelmia, etkä halua edellyttää Open XML:n käyttöä ratkaisussa, voit käyttää muita office-tiedostomuotoja, jotka eivät ole binaarisia, kuten HTML, XML ja RTF. Tämän jälkeen voit suoratoistaa nämä tiedostot asiakasohjelmaan MIME-tyypin avulla niin, että tuloksena oleva teksti näkyy Officessa. Tiedostoa voi muokata, tallentaa ja jopa palauttaa palvelimeen palvelimen ASP:n avulla.

Saat lisätietoja näistä aiheista ja esimerkkejä niiden toteuttamisesta napsauttamalla seuraavia artikkelin numeroita, jolloin voit tarkastella artikkeleita Microsoft Knowledge Base -tietokannassa:

198703 Excelin automatisointi asiakaspuolen VBScript-sovelluksesta

Excel-tietojen kysely ja päivittäminen ASP:n ADO:n avulla

286023 VB ActiveX -komponentin käyttäminen Internet Explorerin automaation Word
 

Jos yrityksesi edellyttää Office 97-, Office 2000-, Office XP- ja Office 2003 -binaaritiedostomuotojen palvelinpuolen luomista, kolmannen osapuolen toimittajat tarjoavat komponentteja, jotka voivat auttaa sinua. Microsoft ei toimita tällaisia osia, joten sinun on joko luotava ratkaisu itse tai ostettava se kolmannen osapuolen toimittajalta. Saatavilla on monia erilaisia kolmansien osapuolten tuotteita. Jokainen ratkaisu kannattaa tutkia, jotta se vastaa parhaiten yrityksen tarpeita.

Jos haluat luoda oman ratkaisun, joka muokkaa Office 97-, Office 2000-, Office XP- ja Office 2003 -binaaritiedostomuotoja suoraan, voit hankkia tiedostomuotomääritykset maksutta Microsoft Open Specification Promisen (OSP) ehtojen mukaisesti. Dokumentaatioon tai luomiesi tuotteiden tekniseen tukeen ei ole saatavilla teknistä tukea, mutta ohjeet ovat saatavilla. 


Palvelinpuolen ratkaisut voivat myös sallia käyttäjien ladata tiedostoja ja määrittää sitten palvelimen hahmontamaan tiedostot tarkasteltavaksi verkossa tai muissa medioissa. Microsoft pyrkii tällä hetkellä tarjoamaan tällaisia ominaisuuksia ja tarjoaa tämän ominaisuuden varhaisen version Microsoft Excel Services.

Excel Services on uusi palvelintekniikka, joka sisältyy Microsoft Office SharePoint Server 2007:ään ja jonka avulla voit ladata, laskea ja näyttää Excel-työkirjoja Office SharePoint Server 2007:ssä. Lisätietoja Excel Services on seuraavissa Microsoft Developer Network (MSDN) -verkkosivustoissa:

Excel Services yleiskatsaus

Vaiheittaiset ohjeet: Mukautetun sovelluksen kehittäminen Excel Web Services -palvelujen avulla

Yrityssovellusten luominen Excel Services- ja Office Open XML -muotojen avulla Word Automaatiopalvelut on uusi palvelusovellus SharePoint Server 2010:ssä. Word Automaatiopalvelut mahdollistaa tiedostojen automaattisen, palvelinpuolen muuntamisen muodoiksi, joita Microsoft Word -asiakassovellus tukee.

Word automaatiopalveluiden yleiskatsaus

Esittelyssä Word Automaatiopalvelut Sinun on arvioitava, mitkä tämän artikkelin kuvaamista vaihtoehdoista sopivat tarpeisiisi ja miten ratkaisu kannattaa ottaa käyttöön. Tämän artikkelin antamien tietojen avulla ei voida taata kaikkien asiakkaiden ongelmien ratkaisemista. Sinua kehotetaan testaamaan ratkaisusi perusteellisesti ennen ratkaisun käyttöönottoa.

Tarvitsetko lisäohjeita?

Haluatko lisää vaihtoehtoja?

Tutustu tilausetuihin, selaa harjoituskursseja, opi suojaamaan laitteesi ja paljon muuta.

Osallistumalla yhteisöihin voit kysyä kysymyksiä ja vastata niihin, antaa palautetta sekä kuulla lisää asiantuntijoilta, joilla on runsaasti tietoa.

Oliko näistä tiedoista hyötyä?

Kuinka tyytyväinen olet käännöksen laatuun?
Mikä vaikutti kokemukseesi?
Kun valitset Lähetä, palautettasi käytetään Microsoftin tuotteiden ja palveluiden parantamiseen. IT-järjestelmänvalvojasi voi kerätä nämä tiedot. Tietosuojatiedot.

Kiitos palautteesta!

×