Conectați-vă cu Microsoft
Conectați-vă sau creați un cont
Salut,
Selectați un alt cont.
Aveți mai multe conturi
Alegeți contul cu care doriți să vă conectați.

Rezumat

Dezvoltatorii pot utiliza automatizare în Microsoft Office pentru a construi soluții particularizate care utilizează capacitățile și caracteristicile încorporate în produsul Office. Deși o astfel de dezvoltare programatic poate fi implementată într-un sistem client cu ușurință relativă, pot apărea o serie de complicații dacă automatizarea are loc din codul de pe partea server, cum ar fi Microsoft Active Server Pages (ASP), ASP.NET, DCOM sau un serviciu Windows NT. Acest articol discută despre complicațiile pe care le pot face dezvoltatorii. Articolul oferă, de asemenea, alternative la automatizare, care pot accelera performanța. Dezvoltatorii trebuie să fie conștienți totuși că sugestiile pe care le oferă acest articol sunt doar în scopuri informationale. Microsoft nu recomandă sau acceptă automatizare pe partea server a Office.

Notă

În acest context, motorul de baze de date Access redistributed și Access Runtime sunt considerate componente Microsoft Office. Termenul "Server-Side" se aplică, de asemenea, codului care rulează pe o stație de lucru Windows, dacă codul rulează de la o stație de lucru Windows diferită de stația interactivă a utilizatorului care este conectat. De exemplu, codul care este pornit de programatorul de activități, sub contul de sistem, rulează în același mediu cu codul ASP "Server-Side" sau ca cod DCOM. Prin urmare, pot apărea multe dintre problemele descrise în acest articol. Pentru mai multe informații despre stațiile de lucru Windows și despre COM, consultați secțiunea "mai multe informații" și secțiunea "Referințe".

Mai multe informații

Toate versiunile curente de Microsoft Office au fost proiectate, testate și configurate pentru a se executa ca produse de utilizator final într-o stație de lucru client. Aceștia își asumă un desktop interactiv și un profil de utilizator. Aceștia nu furnizează nivelul de Reentrancy sau securitate necesar pentru a răspunde nevoilor componentelor de pe partea server proiectate să ruleze nesupravegheat. Microsoft nu recomandă în prezent și nu acceptă automatizarea aplicațiilor Microsoft Office de la orice aplicație sau componentă client nesupravegheată, non-interactivă (inclusiv ASP, ASP.NET, DCOM și NT Services), deoarece Office poate expune un comportament instabil și/sau un impas atunci când Office rulează în acest mediu. Dacă construiți o soluție care rulează într-un context pe partea server, ar trebui să încercați să utilizați componentele care au fost făcute sigure pentru execuția nesupravegheată. Sau, ar trebui să încercați să găsiți alternative care permit cel puțin o parte din cod să ruleze pe partea client. Dacă utilizați o aplicație Office dintr-o soluție de pe partea server, aplicația va lipsi multe dintre capacitățile necesare pentru rulare cu succes. În plus, veți risca stabilitatea soluției generale.

Probleme la utilizarea automatizare pe partea server a Office

Dezvoltatorii care încearcă să utilizeze Office într-o soluție de pe partea server trebuie să fie conștienți de cinci domenii principale în care Office se comportă diferit de cel anticipat din cauza mediului. Dacă codul dumneavoastră este să ruleze cu succes, trebuie să abordați aceste probleme și să le minimizați efectele cât mai mult posibil. Luați în considerare aceste probleme cu atenție atunci când vă construiți aplicația. O soluție nu poate soluționa toate problemele. Diferitele modele necesită să Prioritizați elementele în mod diferit.

  • Identitate utilizator: aplicațiile Office își asumă identitatea de utilizator atunci când se rulează aplicațiile, chiar și atunci când automatizare pornește aplicațiile. Aplicațiile încearcă să inițializează barele de instrumente, meniurile, opțiunile, imprimantele și unele programe de completare pe baza setărilor din secțiunea de registry a utilizatorului pentru utilizatorul care lansează aplicația. Multe servicii rulează sub conturi care nu au profiluri de utilizator (cum ar fi contul de sistem sau conturile de IWAM_ [). Prin urmare, este posibil ca Office să nu fie inițializat corect la pornire. În această situație, Office returnează o eroare în funcția funcția sau funcția CoCreateInstance . Chiar dacă aplicația Office poate fi pornită, este posibil ca alte funcții să nu funcționeze corect dacă nu există niciun profil de utilizator.

  • Interactivitatea cu desktopul: aplicațiile Office Presupun că rulează sub un desktop interactiv. În anumite situații, poate fi necesar ca aplicațiile să fie vizibile pentru ca anumite funcții de automatizare să funcționeze corect. Dacă apare o eroare neașteptată sau dacă este necesar un parametru nespecificat pentru a finaliza o funcție, Office este proiectat să solicite utilizatorului o casetă de dialog modal care întreabă utilizatorul ce dorește să facă utilizatorul. O casetă de dialog modală pe un desktop non-interactiv nu poate fi respinsă. Prin urmare, firul respectiv nu mai răspunde (se blochează) pe o perioadă nedeterminată. Deși anumite practici de codificare pot contribui la reducerea probabilității acestei probleme, aceste practici nu pot împiedica problema în întregime. Acest lucru nu face decât să ruleze aplicații Office dintr-un mediu de pe partea serverului riscant și neacceptat.

  • Reentrancy și scalabilitate: componentele de pe partea server trebuie să fie foarte reparticipante, componente com multi-filetate care au plafon minim și capacitate mare pentru mai mulți clienți. Aplicațiile Office sunt în aproape toate privințele exact opusul. Aplicațiile Office sunt servere de automatizare non-reintrare, bazate pe STA, care sunt proiectate pentru a oferi o funcționalitate diversificată, dar de resurse, pentru un singur client. Aplicațiile oferă o scalabilitate mică ca soluție de pe partea serverului. În plus, aplicațiile au limite fixe pentru elementele importante, cum ar fi memoria. Acestea nu pot fi modificate prin configurare. Mai important, aplicațiile utilizează resurse globale, cum ar fi fișiere asociate memoriei, programe de completare globale sau șabloane și servere de automatizare partajate. Acest lucru poate limita numărul de instanțe care pot funcționa concomitent și poate duce la condiții de concurență dacă aplicațiile sunt configurate într-un mediu cu mai multe clienți. Dezvoltatorii care planifică să ruleze mai multe instanțe din orice aplicație Office, în același timp, trebuie să ia în considerare "punerea în comun" sau serializarea accesului la aplicația Office, pentru a evita eventualele blocaje sau deteriorarea datelor.

  • Flexibilitate și stabilitate: Office 2000, Office XP, Office 2003 și Office 2007 utilizați tehnologia Microsoft Windows Installer (MSI) pentru a face instalarea și repararea automată mai ușoară pentru un utilizator final. MSI introduce noțiunea "instalați la prima utilizare". Acest lucru permite ca caracteristicile să fie instalate sau configurate dinamic în timpul execuției pentru sistem sau mai des pentru un anumit utilizator. Într-un mediu de pe partea server, acest lucru încetinește performanța și mărește probabilitatea ca o casetă de dialog să apară care îi solicită utilizatorului să aprobe instalarea sau să furnizeze un disc de instalare. Deși acest lucru este proiectat pentru a mări adaptabilitatea Office ca produs final, implementarea Office a capacităților MSI este contraproductivă într-un mediu de pe partea serverului. În plus, stabilitatea Office în general nu poate fi asigurată atunci când Office rulează pe partea server, deoarece nu a fost proiectat sau testat pentru acest tip de utilizare. Utilizarea Office ca componentă de serviciu pe un server de rețea poate reduce stabilitatea acelui computer și, prin urmare, poate reduce stabilitatea întregii rețele.

  • Securitate pe partea server: aplicațiile Office nu au fost niciodată destinate utilizării pe partea server. Prin urmare, aplicațiile Office nu iau în considerare problemele de securitate care au distribuit componentele față. Office nu autentifică solicitările de intrare. De asemenea, Office nu vă protejează de macrocomenzile care rulează în mod neintenționat sau de la pornirea unui alt server care poate să ruleze macrocomenzi, din codul de pe partea serverului. Nu deschideți fișierele care sunt încărcate pe server de pe un site web anonim. Pe baza setărilor de securitate care au fost setate Ultima dată, serverul poate să ruleze macrocomenzi sub un administrator sau un context de sistem cu privilegii complete și, prin urmare, poate compromite rețeaua. În plus, Office utilizează mai multe componente de pe partea client (cum ar fi simple MAPI, WinInet și MSDAIPP) care pot memora informațiile de autentificare client la procesarea rapidă. Dacă Office este în curs de server automatizat, o instanță poate servi mai mult de un client. Dacă informațiile de autentificare au fost memorate în cache pentru acea sesiune, un client poate utiliza acreditările memorate în cache ale altui client. Prin urmare, clientul poate avea permisiuni de acces nepermise, prin imitarea altor utilizatori.

Pe lângă problemele tehnice, trebuie să luați în considerare și probleme de licențiere. Regulile curente de licențiere împiedică utilizarea aplicațiilor Office pe un server la solicitările de client de serviciu, cu excepția cazului în care acei clienți au copii licențiate de Office. Utilizarea automatizarii pe partea serverului pentru a oferi funcționalități Office la stațiile de lucru nelicențiate nu este acoperită de acordul de licență pentru utilizatorul final (EULA). În plus față de aceste probleme, este posibil să apară una dintre următoarele erori comune atunci când încercați să automatizați Office Server-Side:

  • Funcția funcția și funcția CoCreateInstance returnează unul dintre următoarele mesaje de eroare în timpul execuției și nu pot fi pornite pentru automatizare.

    Mesajul 1

    Eroarea Run-Time ' 429 ': componenta ActiveX nu poate crea un obiect

    Mesaj 2

    Eroarea Run-Time ' 70 ': permisiune refuzată

    Mesajul 3

    CO_E_SERVER_EXEC_FAILURE (0x80080005): execuția serverului nu a reușit

    Mesajul 4

    E_ACCESSDENIED (0x80070005): Access Denied

  • Atunci când deschideți un document Office, primiți unul dintre următoarele mesaje de eroare.

    Mesajul 1

    Eroarea Run-Time ' 5981 ' (0x800A175D): nu s-a putut deschide stocarea macrocomenzilor

    Mesaj 2

    Eroarea Run-Time ' 1004 ': metoda ' ~ ' a obiectului ' ~ ' nu a reușit

  • Funcția funcția și funcția CoCreateInstance nu mai răspund și nu se termină niciodată sau durează mult timp pentru a reveni. Pe unele servere, crearea este rapidă, dar erorile 1004 apar în Jurnalul de evenimente Windows care indică faptul că aplicația a fost oprită.

  • Anumite funcții nu reușesc în mod neașteptat sau nu mai răspund la nesfârșit din cauza unei avertizări de utilizator sau a unei alte casete de dialog care necesită atenția utilizatorului.

  • Executarea mai multor solicitări sau testarea de rezistență determină ca codul să nu reușească, nu mai răspunde sau se blochează la crearea sau rezilierea unei aplicații Office. Atunci când se întâmplă acest lucru, procesul este lăsat să ruleze în memorie și nu poate fi reziliat sau toate instanțele aplicației care se află automat nu reușesc de la acel punct.

Alte probleme sau mesaje pot apărea în plus față de cele listate aici, dar aceste probleme apar de obicei ca rezultat al celor cinci probleme principale listate mai sus în acest articol. 

Alternative la automatizarea pe partea server

Microsoft recomandă insistent dezvoltatorilor să găsească alternative la automatizarea Office, dacă trebuie să dezvolte soluții pe partea server. Din cauza limitelor la proiectarea Office, modificările la configurarea Office nu sunt suficiente pentru a rezolva toate problemele. Microsoft recomandă insistent un număr de alternative care nu necesită ca Office să fie instalat pe partea server și care să poată efectua mai eficient activitățile comune și mai rapid decât automatizare. Înainte să imprimați Office ca componentă de pe partea serverului în proiect, luați în considerare alternativele. Majoritatea activităților de automatizare pe partea serverului implică crearea sau editarea documentelor. Office 2007 acceptă noi formate de fișier Open XML care permit dezvoltatorilor să creeze, să editeze, să citească și să transforme conținutul fișierelor în partea de server. Aceste formate de fișier utilizează spațiul de nume System.io.package.io în cadrul Microsoft .net 3. x pentru a edita fișiere Office fără a utiliza însăși aplicațiile client Office. Aceasta este metoda recomandată și acceptată pentru manipularea modificărilor în fișierele Office de la un serviciu. Formatele de fișier Open XML sunt un standard public. 

Microsoft oferă un SDK pentru manipularea formatelor de fișier Open XML din cadrul .NET 3. x. Pentru mai multe informații despre SDK și despre cum să utilizați SDK-ul pentru a crea sau a edita fișiere XML deschise, vizitați următoarele site-uri Web Microsoft Developer Network (MSDN):

Deschiderea documentației XML SDK

Instrucțiuni: manipularea documentelor pentru formatele Office Open XML

Manipularea fișierelor Word 2007 cu modelul de obiecte Open XML (partea 1 din 3)

Manipularea fișierelor Word 2007 cu modelul de obiecte Open XML (partea 2 din 3)

Manipularea fișierelor Word 2007 cu modelul de obiecte Open XML (partea 3 din 3)

Manipularea fișierelor Excel 2007 și PowerPoint 2007 cu modelul de obiecte Open XML (partea 1 din 2)

Manipularea fișierelor Excel 2007 și PowerPoint 2007 cu modelul de obiecte Open XML (partea 2 din 2)

Construirea de soluții de generare a documentelor pe partea server, utilizând modelul de obiecte Open XML (partea 1 din 2)

Construirea de soluții de generare a documentelor pe partea server, utilizând modelul de obiecte Open XML (partea 2 din 2)

Atunci când redați în flux fișiere XML din ASP sau din ASP.NET, trebuie să furnizați tipul corect multifuncțională Internet Mail Extension (MIME) pentru conținutul pe care îl redați în flux. Pentru o listă a tipurilor MIME pentru fișierele Office 2007, vizitați următorul site web:

Tipurile MIME pentru formatul de fișier Office 2007 pentru streaming de conținut HTTP

Dacă vizați doar clienții 2007 preoffice și nu doriți să solicitați utilizarea Open XML în soluție, puteți utiliza alte formate de fișier Office non-binare, cum ar fi HTML, XML și RTF. Apoi puteți să redați în flux aceste fișiere unui client utilizând un tip MIME, astfel încât textul rezultat să apară în Office. Documentul poate fi editat, salvat și chiar returnat pe server utilizând ASP pe server. Pentru mai multe informații despre oricare dintre aceste subiecte și pentru exemple care arată cum să le implementați, faceți clic pe următoarele numere de articol pentru a vedea articolele în baza de cunoștințe Microsoft:

198703 Cum se automatizează Excel dintr-un VBScript client-side

278973 ExcelADO demonstrează cum să utilizați ADO pentru a citi și a scrie date în registrele de lucru Excel

286023 Cum se utilizează o componentă ActiveX VB pentru Word Automation din Internet Explorer  

Dacă firma dumneavoastră necesită crearea pe partea server a formatelor de fișier binar Office 97, Office 2000, Office XP și Office 2003, vânzătorii terți oferă componente care vă pot ajuta. Microsoft nu furnizează niciuna dintre aceste componente, așadar, va trebui să creați o soluție sau să o cumpărați de la un furnizor de la terți. Sunt disponibile mai multe produse de la terți. Ar trebui să anchetați fiecare soluție pentru a se potrivi cel mai bine furnizorului la nevoile firmei.

Dacă doriți să vă construiți propria soluție care editează direct formatele de fișier binare Office 97, Office 2000, Office XP și Office 2003, puteți obține gratuit specificațiile de format de fișier, sub termenii promisiunii Microsoft Open Specification (OSP). Nu este disponibilă nicio asistență tehnică pentru documentație sau pentru produsele pe care le creați, dar documentația este disponibilă. 

De asemenea, soluțiile pe partea server pot dori să le permită utilizatorilor să încarce fișiere, apoi să aibă serverul să redea fișierele pentru vizualizare pe web sau pe alte medii. Microsoft lucrează în prezent pentru a oferi asemenea caracteristici și oferă o versiune timpurie a acestei capacități în Microsoft Excel Services. Excel Services este o nouă tehnologie de server inclusă în Microsoft Office SharePoint Server 2007 și care vă permite să încărcați, să calculați și să afișați registre de lucru Excel în Office SharePoint Server 2007. Pentru mai multe informații despre Excel Services, vizitați următoarele site-uri Web Microsoft Developer Network (MSDN):

Prezentare generală Excel Services

Walkthrough: dezvoltarea unei aplicații particularizate utilizând Excel Web Services

Crearea aplicațiilor de Business utilizând Excel Services și formatele Office Open XML Word Automation Services este o aplicație nouă de serviciu în SharePoint Server 2010. Serviciile de automatizare Word oferă conversia nesupravegheată a documentelor în formate acceptate de aplicația client Microsoft Word.

Prezentare generală a serviciilor de automatizare Word

Introducere în Word Automation Services Trebuie să evaluați care dintre opțiunile descrise în acest articol se potrivește nevoilor dvs., precum și cel mai bun mod de a implementa soluția. Informațiile pe care le oferă acest articol nu sunt garantate pentru a rezolva toate problemele pentru toți clienții. Sunteți încurajat să testați soluția cu atenție înainte de a implementa soluția.

Aveți nevoie de ajutor suplimentar?

Doriți mai multe opțiuni?

Explorați avantajele abonamentului, navigați prin cursurile de instruire, aflați cum să vă securizați dispozitivul și multe altele.

Comunitățile vă ajută să adresați întrebări și să răspundeți la întrebări, să oferiți feedback și să primiți feedback de la experți cu cunoștințe bogate.

Au fost utile aceste informații?

Cât de mulțumit sunteți de calitatea limbajului?
Ce v-a afectat experiența?
Apăsând pe Trimitere, feedbackul dvs. va fi utilizat pentru a îmbunătăți produsele și serviciile Microsoft. Administratorul dvs. IT va avea posibilitatea să colecteze aceste date. Angajamentul de respectare a confidențialității.

Vă mulțumim pentru feedback!

×