שיקולי האוטומציה של Office בצד השרת

תרגומי מאמרים תרגומי מאמרים
Article ID: 257757 - View products that this article applies to.
הרחב הכל | כווץ הכל

On This Page

תקציר

באפשרות מפתחים להשתמש באוטומציה של Microsoft Office כדי לבנות פתרונות מותאמים אישית הנעזרים ביכולות ובתכונות המובנות במוצר Office. למרות שניתן ליישם פיתוח תכנותי כזה במערכת לקוח בקלות יחסית, קיימים מספר סיבוכים העלולים להתרחש אם על האוטומציה להתבצע מתוך קוד בצד השרת, כגון Active Server Pages? (ASP),? DCOM או NT Service.

מאמר זה דן בסיבוכים שבפניהם עלולים לעמוד המפתחים, מספק חלופות לאוטומציה שעשויות להאיץ את הביצועים ומציע דרכים לקביעת התצורה של Office כאשר אין אפשרות להימנע מאוטומציה בצד השרת. עם זאת, על המפתחים להיות מודעים לכך שההצעות שלהלן הן למטרות יידוע בלבד. Microsoft אינה ממליצה על אוטומציה של Office בצד השרת ואינה תומכת בה.

שים לב בהקשר זה, המונח 'בצד השרת' חל גם על קוד הפועל בתחנת עבודה של Microsoft Windows NT או Microsoft Windows 2000 בתנאי שהוא פועל מתחנת WinStation שאינה התחנה האינטראקטיבית של המשתמש המחובר. לדוגמה, קוד המופעל על ידי מתזמן המשימות תחת החשבון SYSTEM פועל בסביבה זהה לזו של קוד ASP או DCOM 'בצד השרת' ומשום כך נתקל ברבות מאותן בעיות. לקבלת פרטים נוספים על WinStation ועל COM, עיין בסעיפים 'מידע נוסף' ו'הפניות'.

מידע נוסף

כל הגירסאות הנוכחיות של Microsoft Office תוכננו, נבדקו והוגדרו לפעול כמוצרי משתמש קצה בתחנת עבודה של לקוח. הן מניחות את קיומם של שולחן עבודה ופרופיל משתמש אינטראקטיביים ואינן מספקות את רמת ריבוי הכניסות או רמת האבטחה הנחוצות כדי לתת מענה לצורכיהם של רכיבים בצד השרת המיועדים לפעול ללא התערבות.

בשלב זה, Microsoft אינה ממליצה ואינה תומכת באוטומציה של יישומי Microsoft Office מתוך יישום או רכיב לקוח כלשהם הפועלים ללא התערבות ושאינם אינטראקטיביים (לרבות ASP,? DCOM ו-NT Services), כיוון ש-Office עלול לגלות אי יציבות ו/או להיחסם כאשר הוא מופעל בסביבה זו.

כאשר אתה בונה פתרון הפועל בהקשר של צד שרת, עליך לנסות להשתמש ככל הניתן ברכיבים שאובטחו עבור ביצוע ללא התערבות או למצוא חלופות המאפשרות לפחות לחלק מהקוד לפעול בצד הלקוח. כאשר תבחר להשתמש באחד מיישומי Office מפתרון בצד השרת, תגלה כי הוא חסר את מרבית היכולות הנחוצות לו כדי לפעול כהלכה ובמצב זה תסתכן באי-יציבות של הפתרון הכולל.

בעיות בשימוש באוטומציה של Office בצד השרת

מפתחים המנסים להשתמש ב-Office בפתרון בצד השרת חייבים להיות מודעים לחמישה נושאים עיקריים שבהם פועל Office באופן שונה מהצפוי בגלל הסביבה. אם ברצונך שהקוד יפעל כהלכה, עליך לטפל בחמשת הנושאים הללו ולמזער, עד כמה שניתן, את השפעותיהם. בעת בניית היישום, שקול בקפידה נושאים אלה הואיל ושאין פתרון יחיד המסוגל לטפל בכולם יחד. לתכנונים שונים נדרש סדר עדיפויות שונה.
  1. זהות משתמש: יישומי Office מניחים את קיומה של זהות משתמש בעת פעולתם, גם כאשר הם מופעלים על ידי אוטומציה. הם מנסים לאתחל סרגלי כלים, תפריטים, אפשרויות, מדפסות ומספר תוספות המבוססות על הגדרות בכוורת הרישום של המשתמש עבור המשתמש המפעיל את היישום. שירותים רבים פועלים תחת חשבונות שאין להם פרופיל משתמש (כגון החשבונות SYSTEM או IWAM_[servername]?) ולכן אתחול תקין של Office עלול להיכשל בהפעלה תוך החזרת שגיאה של CreateObject או CoCreateInstance. גם אם ניתן להפעיל את היישום של Office ללא פרופיל משתמש, ייתכן שפונקציות אחרות לא יפעלו כהלכה. אם בכוונתך להפוך את Office לאוטומטי מתוך שירות, עליך לקבוע את תצורת הקוד או את תצורת Office באופן שיפעלו עם פרופיל משתמש שנטען.
  2. אינטראקטיביות עם שולחן העבודה: יישומי Office מניחים שהפעלתם מתבצעת תחת שולחן עבודה אינטראקטיבי ובנסיבות מסוימות עשוי להתעורר הצורך להפוך אותם לנראים לפונקציות אוטומציה מסוימות כדי שיפעלו כהלכה. כאשר מתרחשת שגיאה בלתי צפויה, או כאשר פרמטר שלא צוין נדרש להשלמת פונקציה כלשהי אמור Office להציג למשתמש תיבת דו-שיח מודאלית שבה נשאל המשתמש מה ברצונו לעשות. תיבת דו-שיח מודאלית לא ניתנת לסגירה בשולחן עבודה שאינו אינטראקטיבי, דבר הגורם לאותו הליך משנה להפסיק להגיב (להיתקע) לצמיתות. גם אם נוהלי קידוד מסוימים עשויים לסייע בהקטנת הסבירות של התרחשות מעין זו, אין אפשרות למנוע אותה באופן מוחלט. עובדה זו לבדה הופכת את הפעלת יישומי Office מסביבת צד השרת למסוכנת ולבלתי נתמכת.
  3. ריבוי כניסות ומדרגיות: על רכיבי צד השרת להיות רכיבי COM בעלי יכולת גבוהה של ריבוי כניסות וריבוי תהליכי משנה עם תקורה מזערית ותפוקה מרבית עבור לקוחות מרובים. יישומי Office הם, מכל הבחינות כמעט, ההיפך הגמור. הם מהווים שרתי אוטומציה מבוססי STA שאינם מרובי כניסות ומיועדים לספק פונקציונליות מגוונת אך עתירת משאבים עבור לקוח יחיד. יישומים אלה מאפשרים מדרגיות מועטה כפתרון בצד השרת ויש להם מגבלות קבועות למרכיבים חשובים כגון זיכרון, שאין אפשרות לשנותם באמצעות הגדרת תצורה. חשוב מכך, הם משתמשים במשאבים גלובליים (כגון קבצי זיכרון ממופים, תוספות או תבניות גלובליות ושרתי אוטומציה משותפים), דבר העלול להגביל את מספר המופעים שיכולים לפעול בו-זמנית ולהוביל לתנאים של מרוץ כאשר הם מוגדרים בסביבה מרובת לקוחות. מפתחים שבכוונתם להפעיל יותר ממופע אחד של יישום Office כלשהו בו-זמנית, חייבים לשקול 'איגוד' או גישה סדרתית לאותו יישום Office כדי למנוע אפשרות של חסימות או פגיעה בנתונים.
  4. גמישות ויציבות: Office 2000,? Office XP וכן Office 2003 משתמשים בטכנולוגיית Microsoft Windows Installer? (MSI) כדי להקל על משתמש הקצה את ההתקנה ואת התיקון העצמי. טכנולוגיית MSI מציגה את המושג 'התקנה בשימוש הראשון', המאפשר התקנה דינמית או קביעת תצורה דינמית של תכונות בזמן ריצה (עבור המערכת או, לעיתים קרובות יותר, עבור משתמש מסוים). בסביבת צד שרת, דבר זה מאט את הביצועים וגם מגדיל את הסבירות להופעת תיבת דו-שיח המבקשת מהמשתמש לאשר את ההתקנה או להכניס דיסק התקנה מתאים. אף כי הוא נועד לשפר את הגמישות של Office כמוצר של משתמש קצה, יישום יכולות MSI על-ידי Office אינו פרודוקטיבי בסביבת צד שרת. יתר על כן, אין אפשרות להבטיח את היציבות של Office באופן כללי כאשר הוא פועל בצד השרת, מכיוון שהוא לא תוכנן ולא נבדק עבור אופן שימוש זה. שימוש ב-Office כרכיב שירות בשרת רשת עלול להקטין את היציבות של אותו מחשב וכתוצאה מכך - של הרשת כולה. אם בכוונתך להפוך את Office לאוטומטי בצד השרת, נסה לבודד את התוכנית למחשב ייעודי שאין באפשרותו להשפיע על פונקציות קריטיות ואשר ניתן להפעילו מחדש לפי הצורך.
  5. אבטחה בצד השרת: יישומי Office לא נועדו מעולם לשימוש בצד השרת ולכן אינם מביאים בחשבון את בעיות האבטחה שבהן נתקלים רכיבים מבוזרים. Office אינו מאמת בקשות נכנסות ואינו מגן מפני הפעלה בשוגג של פקודות מאקרו - או מפני הפעלת שרת אחר שעלול להפעיל פקודות מאקרו - מתוך הקוד של צד השרת. אל תפתח קבצים שנטענים לשרת מאתר אנונימי! לפי הגדרות האבטחה שנקבעו לאחרונה, באפשרות השרת להפעיל פקודות מאקרו עם הרשאות מלאות של Administrator או של System ולסכן בכך את הרשת! נוסף לכך, Office משתמש ברכיבים רבים של צד הלקוח (כגון Simple MAPI,? WinInet,? MSDAIPP) שבאפשרותם לשמור במטמון את פרטי האימות של הלקוח כדי להאיץ את העיבוד. כאשר הופכים את Office לאוטומטי בצד השרת, עלול מופע אחד לשרת יותר מלקוח אחד, ומכיוון שפרטי האימות נשמרו במטמון עבור אותה הפעלה, ייתכן שלקוח אחד ישתמש באישורים השמורים במטמון של לקוח אחר ולפיכך יקבל הרשאות גישה שלא הוענקו לו על-ידי התחזות למשתמש אחר.
לצד הבעיות הטכניות, יש להביא בחשבון את הסבירות של כוונה כזו כשמדובר ברישוי. הנחיות הרישוי הנוכחיות מונעות את השימוש ביישומי Office בשרת כדי לשרת בקשות לקוחות, אלא אם לקוחות אלה הם בעלי עותקים מורשים של Office. השימוש באוטומציה בצד השרת כדי לספק פונקציונליות של Office לתחנות עבודה בלתי מורשות אינו מכוסה על-ידי הסכם הרשיון למשתמש קצה (EULA).

בנוסף לבעיות אלה, המשמעותיות יותר, מוצאים לקוחות רבים כי אם לא הוכנס שינוי בהתקנת ברירת המחדל של Office שברשותם עלולה להתקבל - בעת ניסיון להפוך את צד השרת לאוטומטי - אחת מהשגיאות השכיחות הבאות:
  • CreateObject/CoCreateInstance מחזירה את אחת מההודעות הבאות של שגיאת זמן ריצה הבאות ואין אפשרות להפעילה עבור אוטומציה.

    ב-Microsoft Visual Basic? (VB) או ב-ASP:
    • הודעה 1
      Run-time error '429'? (שגיאת זמן ריצה 429): ActiveX component cannot create object (אין באפשרות רכיב ActiveX ליצור אובייקט)
    • הודעה 2
      Run-time error '70'? (שגיאת זמן ריצה 70): Permission denied (ההרשאה נדחתה)
    ב-Microsoft Visual C או ב-Visual C+?+?:
    • הודעה 1
      CO_E_SERVER_EXEC_FAILURE (0x80080005): Server execution failed (הפעלת השרת נכשלה)
    • הודעה 2
      E_ACCESSDENIED (0x80070005): Access denied (הגישה נדחתה)
    הודעות אלה מופיעות הואיל והקוד בצד השרת פועל ללא פרופיל משתמש או זהות המשתמש המפורטת עבור הקשר ההפעלה אינה בעלת הרשאות DCOM מתאימות.
  • פתיחת מסמך של Office גורמת לאחת מהשגיאות הבאות:
    • הודעה 1
      Run-time error '5981' (0x800A175D)? (שגיאת זמן ריצה 5981): Could not open macro storage (פתיחת מקום אחסון המאקרו לא הצליחה)
    • הודעה 2
      Run-time error '1004'? (שגיאת זמן ריצה 1004): Method '~' of object '~' failed (השיטה '~' של אובייקט '~' נכשלה)
    בדרך כלל, זו התוצאה של כישלון באתחול VBA עקב הרשאות בלתי מספיקות או עקב אי רישום של רכיבי VBA, שתי סיבות אופייניות למקרה שבו משתמש מפעיל קוד מחשבון ללא פרופיל משתמש (בעיה מספר 1) ואסימון המשתמש אינו כולל את זהות האבטחה (SID) האינטראקטיבית (בעיה מספר 2).

  • CreateObject/CoCreateInstance נתקעת ואינה מסתיימת, או מחזירה תוצאה לאחר זמן רב. בשרתים מסוימים היצירה היא מהירה אולם מופיעות שגיאות 1004 ביומן האירועים של Windows? (NT).

    לעיתים קרובות, הבעיה היא תיבת דו-שיח שהיא מודאלית לשולחן העבודה הלא-אינטראקטיבי שמפעיל את קוד צד השרת (בעיה מספר 2). כאשר תיבת הדו-שיח נגרמת עקב בעיית התקנה של רכיב MSI (ערך רישום חסר או תמונת קובץ פגומה), היא מבקשת את תקליטור ההתקנה כשאין באפשרותה לאתר את נקודת ההתקנה ומבצעת התקנה מחדש של רכיב אחד או יותר (בעיה מספר 4).
  • פונקציות מסוימות נכשלות באופן בלתי צפוי או נתקעות לצמיתות.

    כאשר משאבים מסוימים כגון מדפסות, כוננים ממופים, אובייקטים מוטבעים של OLE והלוח אינם אינטראקטיביים (בעיה מספר 2), הם עלולים להפוך ללא זמינים או שמצבם עלול להפוך ללא מוגדר. באופן דומה, ללא פרופיל משתמש (בעיה מספר 1), משאבי הרשת אינם זמינים וההרשאות הן מינימליות.
  • הפעלת בקשות מרובות או בדיקה תחת עומס עלולה לגרום לקוד להיכשל, להיתקע או לקרוס ביצירת יישום Office או בהפסקתו. לאחר שהדבר מתרחש, התהליך ממשיך לפעול בזיכרון ואין אפשרות להפסיקו או שכל המופעים של היישום ההופך לאוטומטי נכשלים מאותה נקודה ואילך.

    הואיל ויישומי Office משתפים במשאבים גלובליים (בעיה מספר 3), גישה ליישום Office חייבת להיעשות לפי סדר פעולות מסוימות, לרבות אירועים כגון הפעלה, כיבוי, הדפסה, ייצוא ועדכון קישור OLE (כולל הודעות DDE כלשהן).
בנוסף לבעיות ולהודעות שנמנו לעיל, עלולות להופיע בעיות והודעות נוספות. עם זאת הן מהוות, בדרך כלל, תוצאה של חמש הבעיות שנמנו קודם לכן. כדי להתגבר על בעיות מסוגים אלה, המפתחים יגדירו את סביבת ההפעלה של Office באופן שידמה מצב של צד-לקוח, או יסירו את יישום ה-Office מכל קוד של צד השרת וישתמשו ברכיבים מדרגיים יותר (או באוטומציה בצד השרת) במקום זאת.

שימוש בחלופות לאוטומציה בהפעלה של צד שרת

Microsoft ממליצה מאוד שהמפתחים ימצאו חלופות לאוטומציה של Office כאשר עליהם לפתח פתרונות בצד השרת. בגלל המגבלות של תכנון Office, השינויים בתצורת Office אינם מספיקים לפתרון כל הבעיות. Microsoft ממליצה על מספר חלופות שאינן מחייבות התקנת Office בצד השרת ושיש באפשרותן לבצע את המשימות הנפוצות באופן יעיל ומהיר יותר מאוטומציה. בטרם תכלול רכיב צד שרת של Office בפרוייקט שאתה מפתח, שקול מספר חלופות.

מרבית משימות האוטומציה בצד השרת קשורות ביצירת מסמכים. הואיל וגירסאות Office 2000 ואילך תומכות בשפת HTML כתבנית מסמך מקורית, ניתן ליצור את מרבית המסמכים בשפת HTML, תוך שימוש בשפה Extensible Markup Language? (XML) בעת הצורך, ולהזרים אותם ללקוח באמצעות הסוג Multipurpose Internet Mail Extensions ?(MIME), כך שהטקסט שנוצר יוצג ב-Office. אפשר לערוך את המסמך, לשמור אותו ואף להחזירו לשרת בעת הצורך באמצעות ASP בשרת ותו לא. עבור גירסאות Office קודמות ניתן להשתמש בתבניות טקסט פשוטות לטיפול (כגון RTF) לאותה מטרה.

תבניות בינאריות מקוריות מסוימות ניתנות לעריכה באמצעות Office Web Components? (OWC) או ActiveX Data Objects? (ADO) במהירות ובמדרגיות גדולות הרבה יותר. ניתן להציג או לשנות את מאפייני המסמך ללא אוטומציה, וניהול הקובץ והגירסאות אפשרי באמצעות FrontPage Server Extensions? (FPSE) או Distributed Authoring and Versioning? (DAV). כאשר חיוני להשתמש באוטומציה, ניתן לפרוק את מרבית המשימות בלקוח וכך לספק למערכת יתר יציבות ומדרגיות נוחה יותר, הואיל וכל אחד מהמשתמשים מפעיל את המשימה בהקשר משלו, עם ההגדרות שלו עצמו.

לקבלת פרטים נוספים על על כל אחד מנושאים אלה ולקבלת דוגמאות המציגות את אופן יישומם, לחץ על מספרי המאמרים שלהלן כדי להציגם מתוך מאגר הידע Microsoft Knowledge Base:
270906 אופן השימוש ב-ASP ליצירת מסמך בתבנית Rich Text Format? (RTF) שיוזרם ל-Microsoft Word (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
198703 כיצד להפוך את Excel לאוטומטי מ-VBScript של צד הלקוח (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
199841 כיצד להציג תוצאות ASP באמצעות Excel ב-IE עם סוגי MIME (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
224351 Dsofile.dll מאפשר לשנות מאפייני מסמך של Office ללא Office ב-Visual Basic .NET 2003 וב-Visual Basic .NET 2002 (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
244049 כיצד להשתמש בשרטוט תרשימים בצד השרת כדי ליצור תרשימים באופן דינמי (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
258187 OWebComp.exe כולל דוגמאות scripting עבור Office 2000 Web Components (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
260239 כיצד לעצב נתוני תאים בעת יצירת קובץ Excel עם דף Active Server Pages (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
278973 ExcelADO מדגים כיצד להשתמש ב-ADO לקריאה ולכתיבה של נתונים בחוברות עבודה של Excel (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
286023 אופן השימוש ברכיב VB ActiveX לאוטומציה של Word מ-Internet Explorer (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
288130 אופן השימוש ב-ASP לבניית XML של גיליון אלקטרוני עבור תצוגה בצד הלקוח (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
317316 מגבלות Office Web Components בשימוש בצד השרת (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
אם העסק שלך מחייב יצירת קבצי Office בינאריים של צד השרת, ישנם ספקים חיצוניים המציעים רכיבים שביכולתם לסייע לך. להלן רשימה של מספר ספקים ידועים המציעים שירותים כאלה. הרשימה מוגשת למטרות מידע בלבד. הרשימה אינה בלעדית. ייתכן שספקים נוספים מציעים שירותים דומים שתועלתם רבה יותר מבחינתך. יש לחקור את כל הפתרונות האפשריים של ספקים חיצוניים כדי לאתר את הספק המתאים ביותר לצרכים העסקיים שלך. הספקים שלהלן מציעים כיום מספר פתרונות המאפשרים יצירה ושינוי תכנותיים של תבניות קובץ מקוריות של Office. לקבלת מידע נוסף על הספקים החיצוניים, בקר באתרי האינטרנט הבאים:

Aia Software B.V.
http://www.aia-itp.com
Polar
http://www.polarsoftware.com
SoftArtisans
http://www.softartisans.com
SyncFusion
http://www.syncfusion.com
Keylogix
http://www.activedocs.com
שים לב מוצרים של ספקים חיצוניים הנדונים במאמר זה מיוצרים על-ידי חברות שאינן תלויות ב-Microsoft.? חברת Microsoft אינה מעניקה אחריות, בין במפורש ובין במשתמע, לגבי ביצועיהם או אמינותם של מוצרים אלה.

קביעת תצורת Office לפעולה בצד השרת

כאשר אין כל פתרון ישים אחר ואתה מחליט להמשיך באוטומציה של Office בצד השרת, עליך לטפל ברבים מהנושאים שהועלו קודם לכן כדי לפעול כהלכה מאותה סביבה. מאחר שמרבית הנושאים קשורים לקביעת התצורה, אין אפשרות לספק קבוצת שלבים אחת שתגרום לאוטומציה של Office לפעול בצד השרת בכל המקרים ועבור כל המערכות. מספר הגדרות תצורה עלולות להתנגש באפשרויות אחרות ולכל גישה יתרונות וחסרונות משלה. ייתכן שיהיה עליך לבצע ניסיונות כדי לגלות מהו הפתרון שפועל באופן הטוב ביותר בסביבה שברשותך.

בדרך כלל, כדי לבצע אוטומציה של Office מקוד בצד השרת יש לנהוג כך:
  • לתכנן את הפרוייקט באופן שיבודד את Office ויעטוף אותו.
  • לכתוב את קוד הפרוייקט בדרך שתחזה בעיות ותפעל לתיקונן באופן דינמי.
  • לספק לפרוייקט זהות ופרופיל של משתמש ספציפי שבהם ישתמש Office.
בניסיון להשתמש באוטומציה של Office על תכנון הפרוייקט להביא בחשבון את בעיות האבטחה בצד השרת ואת אי-ריבוי הכניסות שמאפיין את Office. הגבל את השימוש ב-Office למופע מסוים המבוקר על-ידי אובייקט סדרתיות (mutex או פונקציית נעילה ראשונית מוגדרת אישית), או 'איגוד' קבוצת מופעים המבוקרת באופן הדוק ממטפל אובייקטים (או מתווך) מותאם שיש באפשרותו לנפק אובייקטים של יישום בעת הצורך, אולם פקח על ההיבטים המחייבים סדרתיות. Office מניח קיומה של כמות 'מצב' מסוימת ולכן לקוחות מרובים המבצעים פעולות מסוימות (הפעלה, כיבוי, הדפסה וכן הלאה) בו-זמנית עלולים לגרום להתנגשות ואף לנעול הליך משנה אחד או יותר של קריאה על-ידי הצגת שגיאה, בקשת פרטים נוספים מהלקוח או סירוב לשחרר משאב גלובלי שבו משתמשים כל המופעים.

משום כך, הצעד הראשון הוא להגביל את השימוש באוטומציה של Office בתכנון צד השרת ולבודד את התהליך למחשב שאינו קריטי הניתן להפעלה מחדש בעת הצורך. בודד גם את הקשר הקריאה, כדי שלקוח קריאה שנתקע לא יפחית מביצועיו של שירות מערכת חיוני. לדוגמה, אל תבצע אוטומציה ישירות מתוך IIS באמצעות הליך משנה; עדיף בידוד הקוד כך שיפעל בהליך משנה משלו, כדי שלא יפחית את הפונקציונליות הכללית של IIS במקרה של כשל. כמו כן, שקול את הדרך שבה התכנון יאכוף את האבטחה ואת האימות. מאחר ש-Office אינו אוכף אבטחה בצד השרת, הקוד חייב להבטיח שרק מודולי קוד 'מהימנים', כגון דפי ASP, קבצי script וכן הלאה, ייצרו מופע אוטומציה של יישום Office ויקראו לשיטות שלו; כן חייב הקוד להבטיח שכל המסמכים בטוחים בטרם תורה ל-Office לפתוח אותם. יישומי Office בשרת חייבים לפעול תמיד עם 'אבטחה גבוהה'. אם התכנון שלך לא אוכף אבטחה, אתה מסכן את השרת!

לאחר השלמת התכנון עליך לקודד באופן הגנתי כדי למנוע בעיות וכדי לטפל בשגיאות עם התרחשותן. ודא שהקוד שפיתחת מעביר ערכים עבור פרמטרים אופציונליים, מכיוון שערכים חסרים עלולים לעיתים לחייב את Office לבקש מהמשתמש פרטים נוספים. השתמש בלכידת שגיאות בכל הפונקציות כדי לטפל באופן אלגנטי בתנאי שגיאות. נהל יומן רישום של שגיאות אלה באמצעות קוד רישום יומן שניתן להפעלה ולביטול על ידי הגדרה מותאמת אישית (ברישום או בקובץ INI). כאשר אתה מבצע פעולה העלולה לגרום להצגת תיבת דו-שיח של שגיאה באופן בלתי תלוי ב-Office (לדוגמה, פעולת הדפסה עלולה לגרום למנהל המדפסת להציג תיבת דו-שיח כאשר אין נייר במדפסת), הייה מוכן לטפל בנעילות אפשריות באמצעות זמן קצוב או הליך משנה נוסף המפקח על ההתקדמות. לקבלת פרטים נוספים, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
259971 כיצד לסגור תיבת דו-שיח המוצגת על-ידי יישום Office עם Visual Basic (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
השתמש בקוד הרישום ביומן כדי לעקוב אחר בעיות ולאתר באגים בתוכניתך. אם אתה משתמש באיגוד אובייקטים מותאם אישית, באפשרותך להוסיף בדיקות ביצועים ומדרגיות כדי לפקח על השימוש ולנהל רישום יומן של בעיות המשפיעות על כל הלקוחות. גם בקר מרכזי יאפשר לך להפסיק מופעים שגויים של Office וליצור אותם מחדש בעת הצורך כדי לשפר את היציבות הכוללת.

כאשר התוכנית מוכנה לפריסה, ודא ש-Office מוגדר כהלכה בשרת כדי להפעיל הקשר משתמש מתאים. Office מחייב פרופיל משתמש, ועליך לוודא שהוא נטען עם פרופיל כזה כדי שיפעל כהלכה באופן אוטומטי. קיימות שלוש דרכים לבצע זאת בעבודה בסביבת צד שרת:
  • קביעת התצורה של כל מופעי יישום ה-Office המופעל על-ידי האוטומציה כך שיפעלו כמשתמש האינטראקטיבי.
  • קביעת התצורה של כל מופעי יישום ה-Office המופעל על-ידי האוטומציה כך שיפעלו כמשתמש ספציפי.
  • קביעת התצורה של הקוד כך שיפעל כמשתמש ספציפי באמצעות חבילת MTS/COM+? ומתן אפשרות ליישום ה-Office לרשת את זהות המשתמש המפעיל את היישום.
האפשרות הראשונה נותנת ל-Office גם זהות וגם אינטראקטיביות עם שולחן עבודה ספציפי, והיא האפשרות המועדפת בעת איתור באגים (מכיוון שניתן להפוך את Office לנראה וגם לראות ולרשום תיבות דו-שיח או שגיאות GPF על-ידי המשתמש המחובר למערכת באופן מקומי). הדבר מחייב את המשתמש להישאר מחובר כדי לפעול כהלכה, וייתכן שאין זה מתאים במצבים מסוימים. לקבלת פרטים נוספים, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
288366 כיצד לקבוע את תצורת יישומי Office לפעולה תחת חשבון משתמש אינטראקטיבי (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
האפשרות השנייה משייכת משתמש ספציפי אך אינה מאפשרת אינטראקטיביות. Office מופעל כמשתמש המשויך בתחנת WinStation חדשה בשולחן עבודה בלתי נראה. אפשרות זו מחייבת קביעת תצורה נוספת כדי לוודא את טעינת כוורת הרישום של המשתמש, הואיל ו-COM/DCOM אינו מבצע זאת כברירת מחדל. ההגדרה היא גלובלית למערכת כולה, ולכן עלולה להתנגש בתוכניות אחרות. לקבלת פרטים נוספים על קביעת התצורה של Office באופן זה, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
288367 כיצד לקבוע את תצורת יישומי Office לפעולה תחת חשבון משתמש ספציפי (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
האפשרות השלישית מאפשרת לשייך זהות לאתר אינטרנט ספציפי או למודול קוד ולהימנע מלהגדיר עבור Office זהות קבועה באופן גלובלי. Office פועל באותה זהות ונטען באופן נכון כל עוד הזהות הוגדרה קודם לכן עבור אותו מחשב וכוורת הרישום נטענה. בדרך כלל, אפשרות זו היא הגמישה ביותר והפשוטה ביותר לאבטחה, אולם, בדומה לאפשרות הקודמת, היא אינה מאפשרת אינטראקטיביות עם שולחן עבודה נראה ומחייבת הגדרה נוספת. לקבלת פרטים נוספים על קביעת התצורה של Office באופן זה, עיין במאמר הבא מתוך מאגר הידע Microsoft Knowledge Base:
288368 כיצד לקבוע תצורת יישומי Office לאוטומציה מחבילת COM+/MTS (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)
עליך לשקול איזו מהאפשרויות שלעיל מתאימה לצרכיך ואיך לפרוס את הפתרון באופן הטוב ביותר. אין ערבות לכך שהמידע שניתן כאן יפתור את כל הבעיות עבור כל הלקוחות. מומלץ לבצע בדיקות יסודיות לפני הפריסה.

מידע נוסף

לקבלת פרטים נוספים על אוטומציה בצד השרת, עיין במאמרים הבאים מתוך מאגר הידע Microsoft Knowledge Base:
169321 הפעלת שרתי COM ותחנות Windows NT (ייתכן שקישור זה מפנה לתוכן שחלק ממנו או כולו מופיע באנגלית)

מאפיינים

Article ID: 257757 - Last Review: יום רביעי 06 דצמבר 2006 - Revision: 12.6
המידע במאמר זה חל על:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 Standard Edition
  • Microsoft Access 2000 Standard Edition
  • Microsoft Access 97 Standard Edition
  • Microsoft Office Excel 2003
  • Microsoft Excel 2002 Standard Edition
  • Microsoft Excel 2000 Standard Edition
  • Microsoft Excel 97 Standard Edition
  • Microsoft Office Outlook 2003
  • Microsoft Outlook 2002 Standard Edition
  • Microsoft Outlook 2000 Standard Edition
  • Microsoft Outlook 97 Standard Edition
  • Microsoft Office PowerPoint 2003
  • Microsoft PowerPoint 2002 Standard Edition
  • Microsoft PowerPoint 2000 Standard Edition
  • Microsoft PowerPoint 97 Standard Edition
  • Microsoft Office Word 2003
  • Microsoft Word 2002 Standard Edition
  • Microsoft Word 2000 Standard Edition
  • Microsoft Word 97 Standard Edition
  • Microsoft Office Project Standard 2003
  • Microsoft Office Project Professional 2003
  • Microsoft Project 2002 Standard Edition
  • Microsoft Project 2000 Standard Edition
  • Microsoft Project 98 Standard Edition
  • Microsoft Office Visio Standard 2003
  • Microsoft Office Visio Professional 2003
  • Microsoft Visio 2002 Standard Edition
  • Microsoft Visio 2002 Professional Edition
  • Microsoft Visio 2000 Standard Edition
  • Microsoft Visio 2000 Professional Edition
  • Microsoft Visio 2000 Enterprise Edition
  • Microsoft Visio 2000 Technical Edition
  • Microsoft MapPoint 2006 Standard Edition
  • Microsoft MapPoint 2004 Standard Edition
  • Microsoft MapPoint 2002 Standard Edition
  • Microsoft MapPoint 2001 Standard Edition
  • Microsoft MapPoint 2000 Standard Edition
  • Microsoft AutoRoute 2006
  • Microsoft Office OneNote 2003
  • Microsoft Office InfoPath 2003
מילות מפתח 
kbqfe kbautomation kbprogramming kbservice KB257757

ספק משוב

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com