Razmatranja za automatizaciju poslužitelja sustava Office

Vrijedi za: Office-ovi proizvodiAccess 2010Excel 2010

Sažetak


Programeri mogu koristiti automatizaciju u sustavu Microsoft Office za sastavljanje prilagođenih rješenja koja koriste mogućnosti i značajke koje su ugrađene u proizvod sustava Office. Iako se takav programski razvoj može implementirati na klijentskom sustavu s relativnom lakoćom, može doći do broja komplikacija ako se automatizacija odvija iz koda poslužitelja, kao što su web-stranice Microsoft Active Server (ASP), ASP.NET, DCOM ili Windows NT Service. U ovom se članku raspravlja o komplikacijama s kojima se mogu sučeliti programeri. U članku se nudi i alternative automatizacije koja može ubrzati performanse. Programeri bi trebali biti svjesni, međutim, da prijedlozi koje ovaj članak sadrži samo u informativne svrhe. Microsoft ne preporuča ili podržava automatizaciju sustava Office na strani poslužitelja.Napomena U ovom kontekstu upravljački program Microsoft 2007 Office System i modul baze podataka programa Access 2010 smatraju se komponentama sustava Microsoft Office. Pojam "poslužitelj-strana" primjenjuje se i na kod koji se pokreće na radnoj stanici sustava Windows, ako je kod pokrenut s radne stanice sustava Windows koja nije interaktivna stanica korisnika koji je prijavljen. Na primjer, kod koji je pokrenut od strane rasporeda zadataka u odjeljku sistemski račun izvodi se u istom okruženju kao i ASP kod "poslužitelj-Side" ili kao broj servisa d. Zbog toga se mogu pojaviti mnogi problemi u ovom članku. Dodatne informacije o radnim postajama sustava Windows i o COM-u potražite u odjeljku "Dodatne informacije" i "referenci".

Dodatne informacije


Sve sadašnje verzije sustava Microsoft Office dizajnirane su, testirani i konfigurirane da bi se pokrenuli kao proizvodi krajnjeg korisnika na klijentskoj radnoj stanici. Oni preuzimaju interaktivni desktop i korisnički profil. Ne pružaju razinu ponovnog sudionika ni sigurnosti koja je potrebna da bi se zadovoljile potrebe komponenata na strani poslužitelja koje su dizajnirane za pokretanje bez nadzora.Microsoft trenutno ne preporučuje i ne podržava automatizaciju aplikacija sustava Microsoft Office iz bilo koje bez nadzora, neinteraktivne klijentske aplikacije ili komponente (uključujući ASP, ASP.NET, d i NT Services) jer Office može izlagati nestabilnost i/ili zastoj kada se Office pokreće u ovom okruženju.Ako stvarate rješenje koje se izvodi u kontekstu poslužitelja, trebali biste pokušati koristiti komponente koje su sigurne za bez nadzora izvršenja. Ili biste trebali pokušati pronaći alternative koje omogućuju najmanje dio koda za pokretanje klijentske strane. Ako koristite aplikaciju sustava Office s poslužitelja, aplikaciji će nedostajati mnoge potrebne mogućnosti za uspješno pokretanje. Uz to, Riskirat ćete s stabilnošću cjelokupnog rješenja.

Problemi pomoću automatizacije sustava Office na strani poslužitelja

Programeri koji pokušaju koristiti Office na poslužitelju uz rješenje moraju biti svjesni pet glavnih područja u kojima se Office ponaša drugačije od očekivanog zbog okruženja. Ako je vaš kod uspješno vođen, morate riješiti te probleme i minimizirati njihove efekte što je više moguće. Pažljivo razmotrite ove probleme prilikom izgradnje aplikacije. Jedno rješenje ne može riješiti sve probleme. Za različite dizajne morate drugačije odrediti prioritete elemenata.

  • Korisnički identitet: aplikacije sustava Office preuzimaju korisnički identitet kada se aplikacije pokreću, čak i kada automatizacija pokreće aplikacije. Aplikacije pokušaju inicijalizirati alatne trake, izbornike, mogućnosti, pisače i neke dodatke koji se temelje na postavkama u grozku korisničkog registra za korisnika koji lansira aplikaciju. Mnogi servisi pokreću se u odjeljku računi koji nemaju korisničke profile (primjerice sistemski račun ili IWAM_ [servername] računi). Stoga se Office možda neće pravilno inicijalizirati pri pokretanju. U tom slučaju Office vraća pogrešku u funkciji CreateObject ili u funkciji CoCreateInstance . Čak i ako se aplikacija sustava Office može pokrenuti, druge funkcije možda neće ispravno funkcionirati ako ne postoji korisnički profil.
  • Interaktivnost sa stolnim računalima: aplikacije sustava Office pretpostavljaju da se pokreću u sklopu interaktivne radne površine. U nekim slučajevima, aplikacije će možda morati biti vidljive da bi određene funkcije automatizacije funkcionirane ispravno. Ako se pojavi neočekivana pogreška ili ako je za dovršetak funkcije potrebna nedefinirana parametara, Office je dizajniran tako da zatraži korisnika s Modalnim dijaloškim okvirom koji upita korisnika što korisnik želi učiniti. Modalni dijaloški okvir na radnoj površini koja nije interaktivna ne može se odbaciti. Dakle, ta nit prestaje reagirati (visi) na neodređeno vrijeme. Iako određene prakse kodiranja mogu pomoći pri smanjenju vjerojatnosti tog problema, te prakse ne mogu potpuno onemogućiti problem. Samo ta činjenica omogućuje pokretanje aplikacija sustava Office iz okruženja na strani poslužitelja, rizično i nepodržano.
  • Promjena i skalabilnost: komponente na strani poslužitelja moraju biti vrlo reentrant, multi-NAVOJNI com komponente koje imaju minimum nadzemne i visoke propusnost za više klijenata. Aplikacije sustava Office gotovo svi poštuju točno suprotno. Aplikacije sustava Office nisu reentrant, serveri za automatizaciju na temelju kojih su dizajnirani da osiguraju raznoliku, ali funkcionalnu funkcionalnost za jednog klijenta. Aplikacije nude malu skalabilnost kao rješenje na strani poslužitelja. Uz to, aplikacije imaju fiksna ograničenja važnih elemenata, kao što je memorija. Te se promjene ne mogu promijeniti putem konfiguracije. Što je još važnije, aplikacija koristi globalne resurse, kao što su memorijske mapirane datoteke, globalne dodatke ili predloške i zajedničke poslužitelje za automatizaciju. To može ograničiti broj instanci koje se mogu izvoditi istodobno i mogu dovesti do uvjeta rase ako su aplikacije konfigurirane u okruženju s više klijenata. Programeri koji planiraju pokrenuti više instanci bilo koje aplikacije sustava Office istodobno moraju razmotriti "objedinjanje" ili serijaliziranje pristupa aplikaciji sustava Office da biste izbjegli potencijalne blokade ili oštećenja podataka.
  • Elastičnost i stabilnost: Office 2000, Office XP, Office 2003 i Office 2007 koristite tehnologiju Microsoft Windows Installer (MSI) da biste pojednostavnili instalaciju i samopopravak za krajnjeg korisnika. MSI uvodi pojam "Instalacija na prvom korištenju". Time se omogućuje dinamičko Instaliranje ili konfiguriranje značajki u vremenu izvođenja za sustav ili češće za određenog korisnika. U okruženju poslužitelja, ovo usporava performanse i povećava vjerojatnost da će se prikazati dijaloški okvir s pitanjem može li korisnik odobriti instalaciju ili dati instalacijski disk. Iako je to osmišljeno da poveća elastičnost sustava Office kao proizvod krajnjeg korisnika, implementacija sustava Office u sustavu MSI kontraproduktivna je u okruženju poslužitelja. Osim toga, stabilnost sustava Office općenito ne može biti osigurana kada je Office vođen na strani poslužitelja jer nije dizajniran ni testiran za ovu vrstu korištenja. Pomoću sustava Office kao komponente servisa na mrežnom poslužitelju može se smanjiti stabilnost tog računala, a time može smanjiti stabilnost cijele mreže.
  • Sigurnost na strani poslužitelja: aplikacije sustava Office nikad nisu namijenjene korištenju na strani poslužitelja. Stoga aplikacije sustava Office ne uzimaju u obzir sigurnosne probleme s kojima se raspoređuju komponente. Office ne provjerava valjanost dolaznih zahtjeva. Office vas ne štiti ni od nenamjerno pokrenenih makronaredbi ni od početka drugog poslužitelja koji može pokrenuti makronaredbe iz koda poslužitelja. Ne otvarajte datoteke koje se prenose na poslužitelj s anonimnog web-mjesta. Na temelju sigurnosnih postavki koje su posljednje postavljene, poslužitelj može pokrenuti makronaredbe u odjeljku administrator ili sistemski kontekst s punim ovlastima i stoga može ugroziti vašu mrežu. Uz to, Office koristi mnoge klijentske komponente (kao što su jednostavni MAPI, WinInet i MSDAIPP) koje mogu predmemorirati klijentske podatke za provjeru autentičnosti na brzinu obrade. Ako je Office automatiziran na strani poslužitelja, jedan primjer može služiti više od jednog klijenta. Ako su informacije o provjeri autentičnosti predmemorirane za tu sesiju, jedan klijent može koristiti predmemorirane vjerodajnice drugog klijenta. Zbog toga klijent može dobiti nedodijeljene dozvole za pristup oponašanjem drugih korisnika.

Osim tehničkih problema, morate razmotriti i probleme s licenciranjem. Sadašnje smjernice za licenciranje sprječavaju korištenje aplikacija sustava Office na poslužitelju za klijentski zahtjev, osim ako sami klijenti imaju licencirane kopije sustava Office. Pomoću automatizacije poslužitelja za pružanje funkcionalnosti sustava Office na nelicencirane radne stanice ne pokriva licencni ugovor za krajnjeg korisnika (EULA).Osim tih problema, može doći do jedne od sljedećih uobičajenih pogrešaka kada pokušate automatizirati poslužitelj sustava Office:

  • Funkcija CreateObject i funkcija CoCreateInstance vraćaju jednu od sljedećih poruka o pogreškama prilikom izvođenja i ne mogu se pokrenuti za automatizaciju.  
    Prva poruka
    Pogreška u pokretanju "429": ActiveX komponenta ne može stvarati objekt
    2. poruka
    Pogreška u pokretanju "70": dozvola je odbijena
    Treća poruka
    CO_E_SERVER_EXEC_FAILURE (0x80080005): izvršavanje poslužitelja nije uspjelo
    4. poruka
    E_ACCESSDENIED (0x80070005): zabranjen je pristup
  • Kada otvorite dokument sustava Office, primit ćete neku od sljedećih poruka o pogrešci.  
    Prva poruka
    Pogreška u pokretanju ' 5981 ' (0x800A175D): nije moguće otvoriti spremište makronaredbi
    2. poruka
    Pogreška u pokretanju "1004": metoda "~" objekta ' ~ ' nije uspjela
  • Funkcija CreateObject i funkcija CoCreateInstance prestat će reagirati i nikada neće završiti ili će se vratiti na dugo vrijeme. Na nekim poslužiteljima stvaranje je brzo, no u zapisniku događaja sustava Windows prikazat će se pogreške 1004 koje upućuju na to da je aplikacija prekinuta.
  • Određene funkcije neočekivano propadnu ili prestanu reagirati na neodređeno vrijeme zbog korisničkog upozorenja ili drugog dijaloškog okvira za koji je potrebna pažnja korisnika.
  • Pokretanje većeg broja zahtjeva ili ispitivanja stresa uzrokuje neuspjeh koda, prestaje reagirati ili se ruši prilikom stvaranja ili prekida aplikacije sustava Office. Kada se to dogodi, postupak se ostavlja u memoriji i ne može se prekinuti ili sve instance aplikacije koja se automatski ne uspijeva od te točke.

Ostali problemi ili poruke mogu se nalaziti osim onih navedenih ovdje, no ti se problemi obično javljaju kao rezultat pet glavnih problema navedenih u prethodnom dijelu ovog članka. 

Alternativa Automatstvu na strani poslužitelja

Microsoft preporučuje da programeri nađu alternative za automatizaciju sustava Office ako moraju razviti rješenja na strani poslužitelja. Zbog ograničenja dizajna sustava Office, promjene u konfiguraciji sustava Office nisu dovoljne za rješavanje svih problema. Microsoft snažno preporučuje broj alternativa za koje nije potrebna instalacija sustava Office i koja može učinkovitije i brže izvršavati uobičajene zadatke od automatizacije. Prije nego što u projekt uključite Office kao komponentu poslužitelja, razmotrite alternative.Većina zadataka automatizacije poslužitelja obuhvaća stvaranje i uređivanje dokumenata. Office 2007 podržava nove formate datoteka otvorenog XML-a koji programerima omogućuju stvaranje, uređivanje, čitanje i pretvorbu sadržaja datoteka na strani poslužitelja. Ti oblici datoteka koriste naziv naziva System.io.Package.io u okviru Microsoft .net 3. x za uređivanje datoteka sustava Office, a da sami ne koriste klijentske aplikacije sustava Office. Ovo je Preporučeni i podržani način rukovanja promjenama u datotekama sustava Office s servisa.Oblici otvorenih XML datoteka javni su standard. 

Microsoft nudi SDK za manipulaciju otvorenim XML oblicima datoteka iz okvira .NET 3. x. Dodatne informacije o SDK-u i o tome kako koristiti SDK za stvaranje i uređivanje otvorenih XML datoteka potražite na sljedećim web-mjestima programa Microsoft Developer Network (MSDN):

Kada strujanje otvorite XML datoteke iz ASP-a ili iz ASP.NET, morate navesti odgovarajuću vrstu Višeznačajnog proširenja za internetsku poštu (MIME) za sadržaj koji strujete. Popis MIME vrsta za datoteke sustava Office 2007 potražite na sljedećem web-mjestu:

Ako ciljate samo klijentski klijent za Office 2007, a ne želite zahtijevati korištenje otvorenog XML-a u rješenju, možete koristiti i druge nebinarne formate datoteka sustava Office, kao što su HTML, XML i RTF. Te datoteke možete strujati na klijenta pomoću MIME vrste da bi se tekst u sustavu Office pojavio. Dokument se može uređivati, spremiti, pa čak i vratiti na poslužitelj pomoću značajke ASP na poslužitelju. Dodatne informacije o bilo kojoj od ovih tema i primjerima koji prikazuju kako ih implementirati potražite u člancima iz Microsoftove baze znanja pod sljedećim brojevima:

198703 Automatiziranje programa Excel s klijentskog servisa VBScript
278973 ExcelADO pokazuje kako koristiti AADU za čitanje i zapisivanje podataka u radnim knjigama programa Excel
286023 Korištenje VB ActiveX komponente za automatizaciju programa Word iz preglednika Internet Explorer 

Ako je za vašu tvrtku potrebna komponenta poslužitelja sustava Office 97, Office 2000, Office XP i Office 2003 binarni oblici datoteka, proizvođači proizvođača koji vam mogu pomoći. Microsoft ne nudi takve komponente, pa ćete sami morati sami stvoriti rješenje ili ga kupiti od drugog proizvođača. Dostupni su mnogi razni proizvodi drugih proizvođača. Da biste najbolje podudarali dobavljača s poslovnim potrebama, trebali biste istražiti svako rješenje.

Ako želite stvoriti vlastito rješenje koje izravno uređuje formate datoteka sustava Office 97, Office 2000, Office XP i Office 2003, možete besplatno nabaviti specifikacije oblikovanja datoteka u skladu s odredbama Microsoft Open specifikacija obećanja (OSP). Za dokumentaciju ili proizvode koje stvarate nije dostupna nijedna tehnička podrška, ali je dostupna dokumentacija. 

Poslužiteljska rješenja mogu korisnicima dopustiti prijenos datoteka, a zatim poslužitelj prikazati datoteke za prikaz na webu ili na drugim medijima. Microsoft trenutno radi na tome da ponudi takve značajke, te daje ranu verziju ove mogućnosti u programu Microsoft Excel Services.Excel Services nova je poslužiteljska tehnologija koja je uključena u Microsoft Office SharePoint Server 2007 i koja vam omogućuje učitavanje, izračunavanje i prikaz radnih knjiga programa Excel na sustavu Office SharePoint Server 2007. Dodatne informacije o uslugama Excel Services potražite na sljedećim web-mjestima programa Microsoft Developer Network (MSDN):

Word Automation Services nova je servisna aplikacija u sustavu SharePoint Server 2010. Servis za automatizaciju programa Word sadrži Nebez nadzora, pretvaranje dokumenata na strani poslužitelja u formate koje podržava klijentska aplikacija programa Microsoft Word.Morate procijeniti koje od mogućnosti koje ovaj članak opisuje odgovara vašim potrebama i načinu na koji najbolje implementirati rješenje. Informacije koje ovaj članak pruža nisu zajamčene za rješavanje svih problema za sve klijente. Preporučujemo da temeljito Testirajte rješenje prije implementacije rješenja.