Pierakstīties, izmantojot Microsoft
Pierakstīties vai izveidot kontu
Sveicināti!
Atlasīt citu kontu.
Jums ir vairāki konti
Izvēlieties kontu, ar kuru vēlaties pierakstīties.

Kopsavilkums

Izstrādātāji var izmantot automatizāciju produktā Microsoft Office, lai izveidotu pielāgotus risinājumus, kas izmanto iespējas un līdzekļus, kas ir iebūvēti Office produktā. Lai gan šo programmatisko izstrādi var ieviest klienta sistēmā ar relatīvi ērtu, var rasties vairāki komplikācijas, ja automatizācija notiek no servera puses koda, piemēram, Microsoft Active Server Pages (ASP), ASP.NET, DCOM vai Windows NT pakalpojuma. Šajā rakstā ir aplūkotas ar izstrādātājiem iespējamas komplikācijas. Rakstā ir arī piedāvātas alternatīvas automatizācijas iespējas, kas var paātrināt veiktspēju. Izstrādātājiem ir jāzina, ka šajā rakstā sniegtie ieteikumi attiecas tikai uz informatīviem nolūkiem. Korporācija Microsoft neiesaka vai neatbalsta Office servera puses automatizāciju.

Piezīme.

Šajā kontekstā Access datu bāzes programmas atkārtoti Izplatāmais un Access izpildlaiks tiek uzskatīti par Microsoft Office komponentiem. Termins "Server-Side" attiecas arī uz kodu, kas darbojas Windows darbstacijā, ja kods darbojas no Windows darbstacijas, kas atšķiras no lietotāja, kurš ir pieteicies, interaktīvās radiostacijas. Piemēram, kods, ko sācis uzdevumu plānotājs sistēmas kontā, darbojas tajā pašā vidē, kur ir "servera puses" ASP kods vai kā DCOM kods. Tāpēc daudzas šajā rakstā minētās problēmas var rasties. Papildinformāciju par Windows darbstacijām un par COM skatiet sadaļā "Papildinformācija" un sadaļā atsauces.

Papildinformācija

Visas pašreizējās Microsoft Office versijas ir izveidotas, pārbaudītas un konfigurētas tā, lai klienta darbstacijā palaistu kā lietotāja produktus. Tās pieņem interaktīvu darbvirsmas un lietotāja profilu. Tie nenodrošina reentrancy vai drošības līmeni, kas nepieciešams, lai apmierinātu servera puses komponentu vajadzības, kas paredzētas neuzraudzītai darbībai. Microsoft nepiedāvā un nenodrošina Microsoft Office lietojumprogrammu automatizāciju no jebkuras neuzraudzītas, nesaistītas klienta lietojumprogrammas vai komponenta (ieskaitot ASP, ASP.NET, DCOM un NT pakalpojumus), jo Office var radīt nestabilu darbību un/vai strupceļu, kad Office darbojas šajā vidē. Ja veidojat risinājumu, kas darbojas servera puses kontekstā, mēģiniet izmantot komponentus, kas ir droši par neuzraudzītu izpildi. Vai arī mēģiniet atrast alternatīvas, kas atļauj vismaz daļu koda palaist klienta pusē. Ja izmantojat Office lietojumprogrammu no servera puses risinājuma, lietojumprogrammai nepietiek daudz nepieciešamo iespēju, lai darbotos veiksmīgi. Turklāt jūs riskējat ar jūsu vispārējā risinājuma stabilitāti.

Problēmas ar Office servera puses automatizāciju

Izstrādātājiem, kas mēģina izmantot Office servera puses risinājumā, ir jāzina pieci galvenie apgabali, kuros Office darbojas citādi, nekā paredzēts vides dēļ. Ja jūsu kods ir veiksmīgi jāizpilda, jums ir jāpievēršas šīm problēmām un cik vien iespējams samazināt to ietekmi. Kad veidojat savu lietojumprogrammu, rūpīgi apsveriet šīs problēmas. Viens risinājums nevar atrisināt visas problēmas. Dažādiem noformējumiem nepieciešams noteikt elementu prioritāti atšķirīgi.

  • Lietotāja identitāte: Office lietojumprogrammas pieņem lietotāja identitāti, kad lietojumprogrammas tiek palaistas pat tad, ja automatizācija startē lietojumprogrammas. Lietojumprogrammas mēģina inicializēt rīkjoslas, izvēlnes, opcijas, printerus un dažas pievienojumprogrammas, ņemot vērā lietotāja reģistra stropa iestatījumus lietotājam, kurš uzsāk lietojumprogrammu. Daudzi pakalpojumi tiek palaisti, izmantojot kontus, kuriem nav lietotāju profilu (piemēram, sistēmas konts vai IWAM_ [servera nosaukums] konti). Tāpēc, startējot Office, iespējams, nav pareizi inicializēts. Šajā situācijā Office atgriež kļūdu funkcijā CreateObject vai funkciju CoCreateInstance . Pat tad, ja Office lietojumprogrammu var startēt, citas funkcijas var nedarboties pareizi, ja nepastāv neviens lietotāja profils.

  • Interaktivitāte ar darbvirsmu: Office lietojumprogrammas pieņem, ka tās tiek izpildītas interaktīvā galddatorā. Dažos gadījumos lietojumprogrammas, iespējams, ir jāpadara redzamas noteiktās automatizācijas funkcijās, lai tās darbotos pareizi. Ja rodas neparedzēta kļūda vai ir nepieciešams nenoteikts parametrs, lai pabeigtu funkciju, Office nolūks ir aicināt lietotāju izmantot modālo dialoglodziņu, kurā tiek jautāts lietotājam, ko vēlaties darīt. Modālais dialoglodziņš neinteraktīvā galddatorā nav atlaists. Tādējādi šis pavediens neatbild (uzkaras). Lai gan noteiktas kodēšanas metodes var palīdzēt samazināt šīs problēmas iespējamību, šī prakse pilnībā nenovērš šo problēmu. Šis apstāklis tikai nodrošina Office lietojumprogrammu darbību no servera puses vides riskants un neatbalstīts.

  • Reentrancy un mērogojamība: servera puses komponentiem ir jābūt ļoti atkārtotiem, ar vairākpavedienu com komponentiem, kuriem ir minimālie virstēriņi un lielas caurlaidspējas vairākiem klientiem. Office lietojumprogrammas gandrīz visos aspektos ir tieši pretējas. Office lietojumprogrammas ir neienācēji, uz STA-Based automatizācijas serveri, kas ir paredzēti, lai nodrošinātu dažādu, bet resursu ietilpīgu funkcionalitāti vienam klientam. Lietojumprogrammas piedāvā nelielu mērogojamību kā servera puses risinājumu. Turklāt lietojumprogrammas ir noteikušas ierobežojumus attiecībā uz svarīgiem elementiem, piemēram, atmiņu. Tos nevar mainīt, izmantojot konfigurāciju. Svarīgi! lietojumprogrammas izmanto globālus resursus, piemēram, atmiņu kartētus failus, globālas pievienojumprogrammas vai veidnes, kā arī koplietojamos automatizācijas serverus. Tas var ierobežot to gadījumu skaitu, kas var darboties vienlaikus un var novest līdz sacensības apstākļiem, ja lietojumprogrammas ir konfigurētas vairāku klientu vidē. Izstrādātājiem, kuri plāno vienlaikus palaist vairāk nekā vienu Office lietojumprogrammas instanci, ir jāapsver iespēja "pūlošanu" vai piešķirt piekļuvi Office lietojumprogrammai, lai izvairītos no iespējamiem bloķēšanas vai datu bojājuma gadījumiem.

  • Elastība un stabilitāte: Office 2000, Office XP, Office 2003 un Office 2007 izmantojiet Microsoft Windows INSTALLER (MSI) tehnoloģiju, lai lietotājam padarītu instalēšanu un pašlabošanu. MSI iepazīstina ar jēdzienu "instalēšana pēc pirmās izmantošanas". Tādējādi līdzekļi tiek piešķirti dinamiski vai konfigurēti palaišanas laikā sistēmai vai biežāk noteiktam lietotājam. Servera puses vidē tas samazina veiktspēju un palielina varbūtību, ka tiek parādīts dialoglodziņš, kurā lietotājam tiek lūgts apstiprināt instalāciju vai nodrošināt instalācijas disku. Lai gan tas ir paredzēts, lai uzlabotu Office elastīgumu kā gala lietotāja produktu, Office MSI iespēju ieviešana ir neproduktīva servera puses vidē. Turklāt Office stabilitāti vispār nevar nodrošināt, ja Office darbojas servera pusē, jo tā nav izstrādāta vai pārbaudīta šī veida lietošanai. Izmantojot Office kā pakalpojuma komponentu tīkla serverī, var tikt samazināta šī datora stabilitāte un tādējādi var tikt samazināta visa tīkla stabilitāte.

  • Servera puses drošība: Office lietojumprogrammas nekad nav paredzētas servera puses lietošanai. Tāpēc Office lietojumprogrammas neņem vēra drošības problēmas, ar kurām saskaras dalītie komponenti. Office neautentificē ienākošos pieprasījumus. Office arī neaizsargā jūs no netīši palaistiem makro vai startējat citu serveri, kas var palaist makro, no servera puses koda. Neatveriet failus, kas ir augšupielādēti serverī no anonīmas tīmekļa vietnes. Pamatojoties uz pēdējā iestatītajiem drošības iestatījumiem, serveris var izpildīt makro atbilstoši administratora vai sistēmas kontekstam, izmantojot pilnīgas privilēģijas, un tādējādi var kompromitēt jūsu tīklu. Turklāt Office izmanto daudzus klienta puses komponentus (piemēram, vienkāršu MAPI, WinInet un MSDAIPP), kas var kešot klienta autentifikācijas informāciju, lai nodrošinātu ātruma apstrādi. Ja Office ir automatizēta servera puses, viena instance var apkalpot vairāk nekā vienu klientu. Ja autentifikācijas informācija ir kešota šajā sesijā, viens klients var izmantot cita klienta kešotos akreditācijas datus. Tāpēc klients var iegūt nepiešķirtas piekļuves atļaujas, personificējot citus lietotājus.

Papildus tehniskajām problēmām ir jāapsver arī licencēšanas problēmas. Pašreizējās licencēšanas pamatnostādnes neļauj izmantot Office lietojumprogrammas serverī, lai izmantotu klienta pieprasījumus, ja vien šiem klientiem nav licencēta Office kopija. Izmantojot servera puses automatizāciju, lai nodrošinātu Office funkcionalitāti nelicencētām darbstacijām, lietotāja licences līgums (EULA) neattiecas. Papildus šīm problēmām var rasties kāda no tālāk norādītajām tipiskajām kļūdām, mēģinot automatizēt Office servera puses:

  • Funkcija CreateObject un funkcija CoCreateInstance atgriezīs vienu no tālāk norādītajiem izpildlaika kļūdu ziņojumiem, un to nevar startēt automatizācijai.

    1. ziņojums

    Izpildlaika kļūda "429": ActiveX komponents nevar izveidot objektu

    2. ziņojums

    Izpildlaika kļūda "70": atļauja liegta

    3. ziņojums

    CO_E_SERVER_EXEC_FAILURE (0x80080005): neizdevās veikt servera izpildi

    4. ziņojums

    E_ACCESSDENIED (0x80070005): piekļuve liegta

  • Atverot Office dokumentu, tiek parādīts kāds no tālāk norādītajiem kļūdas ziņojumiem.

    1. ziņojums

    Izpildlaika kļūda "5981" (0x800A175D): nevarēja atvērt makro krātuvi

    2. ziņojums

    Izpildlaika kļūda "1004": neveiksmīgas objekta ' ~ '

  • Funkcija CreateObject un funkcija CoCreateInstance pārstāj reaģēt un nekad nepabeigt vai veikt ilgu laiku. Dažos serveros izveide ir ātra, bet 1004 kļūdas parādās Windows notikumu žurnālfailā, kas norāda, ka lietojumprogramma ir apturēta.

  • Noteiktas funkcijas negaidīti nepalīdz vai pārstāj reaģēt, jo lietotāja brīdinājums vai cits dialoglodziņš, kurā nepieciešama lietotāju uzmanība.

  • Veicot vairākus pieprasījumus vai stresa testēšanu, rodas koda kļūme, pārstāj reaģēt vai avarē Office lietojumprogrammas izveides vai izbeigšanas rezultātā. Kad tas notiek, process ir atstāts atmiņā, un to nevar atcelt, vai visi tās lietojumprogrammas gadījumi, kas tiek automatizēti, neveic šīs darbības.

Citas problēmas vai ziņojumi var tikt parādīti papildus šeit norādītajiem, taču šīs problēmas parasti rodas piecu galveno problēmu rezultātā, kas minētas iepriekš šajā rakstā. 

Alternatīvas servera puses automatizācijai

Microsoft stingri iesaka izstrādātājiem atrast Office automatizācijas alternatīvas, ja viņiem ir jāattīsta servera puses risinājumi. Office noformējuma ierobežojumu dēļ izmaiņas Office konfigurācijā nav pietiekamas, lai atrisinātu visas problēmas. Microsoft stingri iesaka vairākas alternatīvas, kas neprasa instalēt Office serverī, un kas visbiežāk veic uzdevumus efektīvāk un ātrāk nekā automatizācija. Lai savā projektā iesaistītu Office kā servera daļas komponentu, apsveriet alternatīvas. Lielākā daļa servera puses automatizācijas uzdevumu ietver dokumentu izveidi vai rediģēšanu. Office 2007 atbalsta jaunus atvērtos XML failu formātus, kas izstrādātājiem ļauj izveidot, rediģēt, lasīt un transformēt failu saturu servera pusē. Šie failu formāti izmanto Microsoft .NET 3. x Framework System.io.Package.io nosaukumvietu, lai rediģētu Office failus, neizmantojot pašas Office klienta lietojumprogrammas. Šī ir ieteicamā un atbalstītā metode, lai apstrādātu izmaiņas Office failos no pakalpojuma. Atvērtie XML failu formāti ir publisks standarts. 

Microsoft nodrošina SDK, lai manipulētu ar Open XML failu formātiem no .NET 3. x struktūras. Lai iegūtu papildinformāciju par SDK un to, kā izmantot SDK, lai izveidotu vai rediģētu atvērtos XML failus, apmeklējiet šīs Microsoft izstrādātāju tīkla (MSDN) tīmekļa vietnes:

XML SDK dokumentācijas atvēršana

Kā: manipulēšana ar Office Open XML formātu dokumentiem

Manipulēšana ar Word 2007 failiem ar Open XML objekta modeli (1. daļa no 3)

Manipulēšana ar Word 2007 failiem ar Open XML objekta modeli (2. daļa no 3)

Manipulēšana ar Word 2007 failiem ar Open XML objekta modeli (3. daļa no 3)

Manipulējot ar Excel 2007 un PowerPoint 2007 failiem ar Open XML objekta modeli (1. daļa no 2)

Manipulējot ar Excel 2007 un PowerPoint 2007 failiem ar Open XML objekta modeli (2. daļa no 2)

Building Server-Side dokumentu ģenerēšanas risinājumi, izmantojot Open XML Object Model (1. daļa no 2)

Building Server-Side dokumentu ģenerēšanas risinājumi, izmantojot Open XML Object Model (2. daļa no 2)

Ja straumējat atvērtos XML failus no ASP vai no ASP.NET, jums jāsniedz pareizais interneta pasta paplašinājuma (MIME) tips saturam, ko straumējat. Lai iegūtu Office 2007 failu MIME tipu sarakstu, apmeklējiet šo tīmekļa vietni:

Office 2007 failu formāts MIME tipi HTTP satura straumēšanai

Ja jūs mērķējat tikai uz Office 2007 klientiem un nevēlaties pieprasīt Open XML lietošanu risinājumā, varat izmantot citus nebinārus Office failu formātus, piemēram, HTML, XML un RTF. Pēc tam šos failus varat straumēt uz klientu, izmantojot MIME tipu, lai izveidotais teksts tiktu parādīts sistēmā Office. Dokumentu var rediģēt, saglabāt un pat atgriezties serverī, izmantojot ASP serverī. Papildinformāciju par jebkuru no šīm tēmām un piemēriem, kuros parādīts, kā tos ieviest, noklikšķiniet uz šiem rakstu numuriem, lai skatītu rakstus Microsoft zināšanu bāzē:

198703 Kā automatizēt Excel no klienta puses VBScript

278973 ExcelADO ir parādīts, kā izmantot ADO datu lasīšanai un rakstīšanai Excel darbgrāmatās

286023 Kā izmantot VB ActiveX komponentu Word automatizācijai pārlūkprogrammā Internet Explorer  

Ja jūsu uzņēmumam ir nepieciešama Office 97, Office 2000, Office XP un Office 2003 bināro failu formātu servera puses, trešo pušu pārdevēji piedāvā komponentus, kas var jums palīdzēt. Microsoft nenodrošina šādus komponentus, tāpēc jums ir nepieciešams izveidot risinājumu pats vai iegādāties kādu no trešās puses piegādātājiem. Ir pieejami daudzi dažādi trešo pušu produkti. Ir jāizpēta katrs risinājums, lai tas labāk atbilstu jūsu uzņēmuma vajadzībām.

Ja vēlaties izveidot savu risinājumu, kas tieši rediģē Office 97, Office 2000, Office XP un Office 2003 bināros failu formātus, varat iegūt failu formāta specifikācijas bez maksas atbilstoši Microsoft Open Specification Promise (ADP) noteikumiem. Nav pieejams tehniskais atbalsts dokumentiem vai jūsu izveidotajiem produktiem, taču ir pieejama dokumentācija. 

Servera puses risinājumi arī var vēlēties atļaut lietotājiem augšupielādēt failus un pēc tam likt serverim atveidot failus apskatei tīmeklī vai citos vidēs. Microsoft pašlaik strādā, lai piedāvātu šādus līdzekļus, un nodrošina šo iespēju sākotnējo versiju programmā Microsoft Excel Services. Excel pakalpojumi ir jauna servera tehnoloģija, kas ir iekļauta produktā Microsoft Office SharePoint Server 2007 un kas ļauj ielādēt, aprēķināt un rādīt Excel darbgrāmatas Office SharePoint Server 2007. Lai iegūtu papildinformāciju par Excel pakalpojumiem, apmeklējiet šo Microsoft izstrādātāju tīkla (MSDN) tīmekļa vietnes:

Excel pakalpojumu pārskats

Walkthrough: pielāgotas lietojumprogrammas izveide, izmantojot Excel Web Services

Biznesa lietojumprogrammu izveide, izmantojot Excel pakalpojumus un Office Open XML formātus Word automatizācijas pakalpojumi ir jauna pakalpojumu lietojumprogramma pakalpojumā SharePoint Server 2010. Word automatizācijas pakalpojumi nodrošina neuzraudzītu dokumentu pārveidošanu par formātiem, ko atbalsta Microsoft Word klienta lietojumprogramma.

Word automatizācijas pakalpojumu pārskats

Iepazīšanās ar Word automatizācijas pakalpojumiem Ir jāizvērtē, kuras no šajā rakstā aprakstītajām opcijām ir atbilstošas jūsu vajadzībām un kā vislabāk izvietot savu risinājumu. Šajā rakstā sniegtā informācija netiek garantēta, lai novērstu visas problēmas visiem klientiem. Pirms risinājuma izvietošanas ieteicams rūpīgi pārbaudīt risinājumu.

Nepieciešama papildu palīdzība?

Vēlaties vairāk opciju?

Izpētiet abonementa priekšrocības, pārlūkojiet apmācības kursus, uzziniet, kā aizsargāt ierīci un veikt citas darbības.

Kopienas palīdz uzdot jautājumus un atbildēt uz tiem, sniegt atsauksmes, kā arī saņemt informāciju no ekspertiem ar bagātīgām zināšanām.

Vai šī informācija bija noderīga?

Cik lielā mērā esat apmierināts ar valodas kvalitāti?
Kas ietekmēja jūsu pieredzi?
Nospiežot Iesniegt, jūsu atsauksmes tiks izmantotas Microsoft produktu un pakalpojumu uzlabošanai. Jūsu IT administrators varēs vākt šos datus. Paziņojums par konfidencialitāti.

Paldies par jūsu atsauksmēm!

×