الملخص
يمكن للمطورين استخدام "التنفيذ التلقائي" في Microsoft Office لإنشاء حلول مخصصة تستخدم الإمكانات والميزات المضمنة في منتج Office. على الرغم من إمكانية تنفيذ مثل هذا التطوير البرمجي على نظام عميل بسهولة نسبية، يمكن أن يحدث عدد من التعقيدات إذا تم التنفيذ التلقائي من التعليمات البرمجية من جانب الخادم مثل صفحات خادم Microsoft Active Pages (ASP) أو ASP.NET أو DCOM أو خدمة Windows NT.
تناقش هذه المقالة التعقيدات التي قد يواجهها المطورون. تقدم المقالة أيضا بدائل للأتمتة يمكنها تسريع الأداء. ومع ذلك، يجب أن يدرك المطورون أن الاقتراحات التي تقدمها هذه المقالة هي لأغراض إعلامية فقط. لا توصي Microsoft بالتشغيل التلقائي من جانب الخادم ل Office أو تدعمه.
ملاحظة
وفي هذا السياق، يتم اعتبار مشغل قاعدة بيانات Access القابل لإعادة التوزيع ووقت تشغيل Access من مكونات Microsoft Office. ينطبق المصطلح "جانب الخادم" أيضا على التعليمات البرمجية التي تعمل على محطة عمل Windows، إذا كانت التعليمات البرمجية قيد التشغيل من محطة عمل Windows غير المحطة التفاعلية الخاصة بالمستخدم الذي قام بتسجيل الدخول. على سبيل المثال، تعمل التعليمات البرمجية التي بدأها جدولة المهام ضمن حساب SYSTEM في نفس البيئة مثل التعليمات البرمجية ASP "من جانب الخادم" أو كتعليمات برمجية DCOM. وبالتالي، قد يحدث العديد من المشكلات التي تتناولها هذه المقالة. لمزيد من المعلومات حول محطات عمل Windows وحول COM، راجع قسم "مزيد من المعلومات" وقسم "المراجع".
المزيد من المعلومات
تم تصميم جميع الإصدارات الحالية من Microsoft Office واختبارها وتكوينها ليتم تشغيلها كمنتجات مستخدم نهائي على محطة عمل عميل. ويفترضون وجود سطح مكتب تفاعلي وملف تعريف المستخدم. فهي لا توفر مستوى إعادة الدخول أو الأمان اللازم لتلبية احتياجات المكونات من جانب الخادم والمصممة للتشغيل دون مراقبة.
لا توصي Microsoft حاليا ولا تدعمها التنفيذ التلقائي لتطبيقات Microsoft Office من أي تطبيق عميل غير مراقب أو غير تفاعلي أو مكون (بما في ذلك خدمات ASP و ASP.NET وDCOM وNT)، لأن Office قد يظهر سلوكا غير مستقر و/أو توقف تام عند تشغيل Office في هذه البيئة.
إذا كنت تقوم بإنشاء حل يتم تشغيله في سياق من جانب الخادم، فيجب أن تحاول استخدام المكونات التي تم جعلها آمنة للتنفيذ غير المراقب. أو، يجب أن تحاول العثور على بدائل تسمح لجزء على الأقل من التعليمات البرمجية بالتشغيل من جانب العميل. إذا كنت تستخدم أحد تطبيقات Office من حل من جانب الخادم، فسيفتقر التطبيق إلى العديد من الإمكانات الضرورية للتشغيل بنجاح. بالإضافة إلى ذلك ، ستخاطر باستقرار الحل الشامل الخاص بك.
مشاكل استخدام التنفيذ التلقائي من جانب الخادم ل Office
يجب أن يكون المطورون الذين يحاولون استخدام Office في حل من جانب الخادم على دراية بخمسة مجالات رئيسية يتصرف فيها Office بشكل مختلف عما هو متوقع بسبب البيئة. إذا أريد تشغيل التعليمات البرمجية بنجاح، فيجب معالجة هذه المشاكل وتقليل آثارها قدر الإمكان. ضع في اعتبارك هذه الأمور بتأن عند إنشاء التطبيق. لا يمكن لحل واحد معالجة كل المشكلات. تتطلب منك التصميمات المختلفة تحديد أولويات العناصر بشكل مختلف.
- هوية المستخدم: تفترض تطبيقات Office هوية المستخدم عند تشغيل التطبيقات، حتى عند بدء تشغيل الأتمتة للتطبيقات. تحاول التطبيقات تهيئة أشرطة الأدوات والقوائم والخيارات والطابعات وبعض الوظائف الإضافية استنادا إلى الإعدادات الموجودة في خلية التسجيل الخاصة بالمستخدم الذي يقوم بتشغيل التطبيق. يتم تشغيل العديد من الخدمات ضمن حسابات لا تحتوي على ملفات تعريف مستخدمين (مثل حساب SYSTEM أو حسابات IWAM_[servername]). لذلك، قد لا تتم تهيئة Office بشكل صحيح عند بدء التشغيل. في هذه الحالة، يرجع Office خطأ على الدالة CreateObject أو الدالة CoCreateInstance. حتى إذا أمكن بدء تشغيل تطبيق Office، فقد لا تعمل الوظائف الأخرى بشكل صحيح في حالة عدم وجود ملف تعريف مستخدم.
- التفاعل مع سطح المكتب: تفترض تطبيقات Office أنها يتم تشغيلها ضمن سطح مكتب تفاعلي. في بعض الحالات، قد تحتاج التطبيقات إلى أن تكون مرئية لبعض وظائف "التنفيذ التلقائي" لكي تعمل بشكل صحيح. في حالة حدوث خطأ غير متوقع، أو إذا كانت هناك حاجة إلى معلمة غير محددة لإكمال دالة، فقد تم تصميم Office لمطالبة المستخدم بمربع حوار مشروط يسأل المستخدم عما يريد المستخدم تنفيذه. لا يمكن تجاهل مربع الحوار المشروط على سطح مكتب غير تفاعلي. لذلك، يتوقف مؤشر الترابط عن الاستجابة (يتوقف) إلى أجل غير مسمى. على الرغم من أن بعض ممارسات الترميز يمكن أن تساعد في تقليل احتمالية حدوث هذه المشكلة، إلا أن هذه الممارسات لا يمكنها منع المشكلة تماما. هذه الحقيقة وحدها تجعل تشغيل تطبيقات Office من بيئة من جانب الخادم محفوفا بالمخاطر وغير مدعومة.
- إعادة الدخول وقابلية التوسع: يجب أن تكون المكونات من جانب الخادم مكونات COM متعددة مؤشرات الترابط ذات الحد الأدنى من النفقات العامة ومعدل النقل العالي للعديد من العملاء. تطبيقات Office هي عكس ذلك من جميع النواحي تقريبا. تطبيقات Office هي خوادم Automation غير مجددة وقائمة على STA تم تصميمها لتوفير وظائف متنوعة ولكنها تستهلك الموارد بشكل كبير لعميل واحد. توفر التطبيقات قابلية التوسع قليلا كحل من جانب الخادم. بالإضافة إلى ذلك ، تحتوي التطبيقات على قيود ثابتة للعناصر المهمة ، مثل الذاكرة. لا يمكن تغييرها من خلال التكوين. والأهم من ذلك ، تستخدم التطبيقات موارد عامة مثل الملفات المعينة للذاكرة والوظائف الإضافية أو القوالب العامة وخوادم الأتمتة المشتركة. يمكن أن يؤدي ذلك إلى الحد من عدد المثيلات التي يمكن تشغيلها بشكل متزامن ويمكن أن يؤدي إلى ظروف سباق إذا تم تكوين التطبيقات في بيئة متعددة العملاء. يحتاج المطورون الذين يخططون لتشغيل أكثر من مثيل واحد من أي تطبيق Office في الوقت نفسه إلى التفكير في "تجميع" الوصول إلى تطبيق Office أو تسلسله لتجنب حالات التوقف التام المحتملة أو تلف البيانات.
- المرونة والثبات: يستخدم كل من Office 2000 وOffice XP وOffice 2003 وOffice 2007 تقنية Microsoft Windows Installer (MSI) لتسهيل عملية التثبيت والإصلاح الذاتي أكثر سهولة على المستخدم. تقدم MSI مفهوم "التثبيت عند الاستخدام الأول". يسمح هذا بتثبيت الميزات أو تكوينها ديناميكيا في وقت تشغيل النظام، أو في أغلب الأحيان لمستخدم معين. في بيئة من جانب الخادم، يؤدي ذلك إلى إبطاء الأداء وزيادة احتمالية ظهور مربع حوار يطلب من المستخدم الموافقة على التثبيت أو توفير قرص تثبيت. على الرغم من أن هذا الإجراء مصمم لزيادة مرونة Office كمنتج للمستخدم النهائي، إلا أن تنفيذ إمكانات MSI من Office يؤدي إلى نتائج عكسية في بيئة من جانب الخادم. علاوة على ذلك، لا يمكن ضمان استقرار Office بشكل عام عند تشغيل Office من جانب الخادم لأنه لم يتم تصميمه أو اختباره لهذا النوع من الاستخدام. قد يؤدي استخدام Office كمكون خدمة على خادم الشبكة إلى تقليل استقرار هذا الكمبيوتر، وبالتالي قد يؤدي إلى تقليل استقرار الشبكة بكاملها.
- الأمان من جانب الخادم: لم تكن تطبيقات Office مخصصة أبدا للاستخدام من جانب الخادم. لذلك ، لا تأخذ تطبيقات Office في الاعتبار مشاكل الأمان التي تواجهها المكونات الموزعة. لا يصادق Office على الطلبات الواردة. ولا يحميك Office أيضا من تشغيل وحدات الماكرو دون قصد، أو من بدء تشغيل خادم آخر قد يقوم بتشغيل وحدات الماكرو، من التعليمات البرمجية من جانب الخادم. لا تفتح الملفات التي تم تحميلها إلى الخادم من موقع ويب مجهول. استنادا إلى إعدادات الأمان التي تم تعيينها مؤخرا، يمكن للخادم تشغيل وحدات الماكرو ضمن سياق مسؤول أو نظام بامتيازات كاملة، وبالتالي يمكنه اختراق شبكتك. بالإضافة إلى ذلك، يستخدم Office العديد من المكونات من جانب العميل (مثل Simple MAPI وWinInet وMSDAIPP) التي يمكنها تخزين معلومات مصادقة العميل مؤقتا لتسريع المعالجة. إذا كان Office تلقائيا من جانب الخادم، فقد يقوم مثيل واحد بخدمة أكثر من عميل واحد. إذا تم تخزين معلومات المصادقة مؤقتا لجلسة العمل هذه، فيمكن لعميل واحد استخدام بيانات الاعتماد المخزنة مؤقتا لعميل آخر. لذلك، قد يحصل العميل على أذونات وصول غير ممنوحة عن طريق انتحال صفة مستخدمين آخرين.
إلى جانب المشاكل التقنية، يجب أيضا مراعاة مشاكل الترخيص. تمنع إرشادات الترخيص الحالية استخدام تطبيقات Office على خادم لخدمة طلبات العملاء، إلا إذا كان هؤلاء العملاء أنفسهم قد قاموا بترخيص نسخ Office. لا تشتمل اتفاقية ترخيص المستخدم النهائي (EULA) على استخدام "التنفيذ التلقائي من جانب الخادم" لتوفير وظائف Office لمحطات العمل غير المرخصة.
بالإضافة إلى هذه المشاكل، قد يحدث أحد الأخطاء الشائعة التالية عند محاولة تنفيذ Office على جانب الخادم بشكل تلقائي:
ترجع الدالة CreateObject والدالة CoCreateInstance إحدى رسائل الخطأ التالية في وقت التشغيل ولا يمكن بدء تشغيلها للتنفيذ التلقائي.
الرسالة 1ملاحظة
خطأ وقت التشغيل '429': لا يمكن لمكون ActiveX إنشاء كائن
الرسالة 2
ملاحظة
خطأ وقت التشغيل '70': تم رفض الإذن
الرسالة 3
ملاحظة
CO_E_SERVER_EXEC_FAILURE (0x80080005): فشل تنفيذ الخادم
الرسالة 4
ملاحظة
E_ACCESSDENIED (0x80070005): تم رفض الوصول
عند فتح مستند Office، تتلقى إحدى رسائل الخطأ التالية.
الرسالة 1ملاحظة
خطأ وقت التشغيل '5981' (0x800A175D): تعذر فتح تخزين الماكرو
الرسالة 2
ملاحظة
خطأ وقت التشغيل '1004': فشل أسلوب '~' للعنصر '~'
تتوقف الدالة CreateObject والدالة CoCreateInstance عن الاستجابة ولا تنتهي أبدا، أو تستغرق وقتا طويلا للعودة. على بعض الخوادم، تتم عملية الإنشاء بسرعة، ولكن تظهر أخطاء 1004 في سجل أحداث Windows تشير إلى إيقاف التطبيق.
تفشل بعض الوظائف بشكل غير متوقع أو تتوقف عن الاستجابة بشكل غير متوقع بسبب تنبيه مستخدم أو مربع حوار آخر يتطلب انتباه المستخدم.
يتسبب تشغيل طلبات متعددة أو اختبار الإجهاد في فشل التعليمات البرمجية أو توقفها عن الاستجابة أو تعطلها عند إنشاء تطبيق Office أو إنهائه. عند حدوث ذلك، إما أن تترك العملية قيد التشغيل في الذاكرة ولا يمكن إنهاؤها، أو تفشل جميع مثيلات التطبيق الذي يتم تشغيله تلقائيا من هذه النقطة فصاعدا.
قد تظهر مشاكل أو رسائل أخرى بالإضافة إلى تلك المذكورة هنا، ولكن تحدث هذه المشاكل عادة نتيجة للمشاكل الخمس الرئيسية المذكورة سابقا في هذه المقالة.
بدائل "التنفيذ التلقائي من جانب الخادم"
توصي Microsoft المطورين بشدة بالبحث عن بدائل للتنفيذ التلقائي ل Office إذا كانوا بحاجة إلى تطوير حلول من جانب الخادم. بسبب القيود المفروضة على تصميم Office، التغييرات في تكوين Office ليست كافية لحل كافة المشاكل. توصي Microsoft بشدة بعدد من البدائل التي لا تتطلب تثبيت Office من جانب الخادم، والتي يمكنها تنفيذ معظم المهام الشائعة بشكل أكثر فعالية وسرعة من "التنفيذ التلقائي". قبل إشراك Office كمكون من جانب الخادم في المشروع، ضع في اعتبارك بدائل.
تتضمن معظم مهام "التنفيذ التلقائي" من جانب الخادم إنشاء المستندات أو تحريرها. يعتمد Office 2007 تنسيقات الملفات Open XML الجديدة التي تتيح للمطورين إنشاء محتوى الملفات وتحريره وقراءته وتحويله من جانب الخادم. تستخدم تنسيقات الملفات هذه مساحة الاسم System.IO.Package.IO في Microsoft .NET 3.x Framework لتحرير ملفات Office دون استخدام تطبيقات عميل Office نفسها. هذه هي الطريقة الموصى بها والمعتمدة لمعالجة التغييرات التي يتم إجراؤها على ملفات Office من الخدمة.
تعتبر تنسيقات الملفات Open XML مقياسا عاما.
توفر Microsoft SDK لمعالجة تنسيقات ملفات Open XML من إطار عمل .NET 3.x. لمزيد من المعلومات حول SDK وكيفية استخدام SDK لإنشاء ملفات Open XML أو تحريرها، قم بزيارة مواقع Microsoft Developer Network (MSDN) التالية على الويب:
كيفية: التعامل مع تنسيقات المستندات المفتوحة ل Office XML
التعامل مع Word 2007 Files باستخدام Open XML Object Model (الجزء 1 من 3)
التعامل مع Word 2007 Files باستخدام Open XML Object Model (الجزء 2 من 3)
التعامل مع Files Word 2007 باستخدام Open XML Object Model (الجزء 3 من 3)
معالجة Files Excel 2007 وPowerPoint 2007 باستخدام Open XML Object Model (الجزء 1 من 2)
معالجة Files Excel 2007 وPowerPoint 2007 باستخدام نموذج كائن Open XML (الجزء 2 من 2)
إنشاء حلول إنشاء مستندات Server-Side باستخدام نموذج كائن Open XML (الجزء 1 من 2)
إنشاء حلول إنشاء مستندات Server-Side باستخدام نموذج كائن Open XML (الجزء 2 من 2)
عند النقل المستمر لملفات Open XML من ASP أو من ASP.NET، يجب توفير نوع ملحق بريد الإنترنت متعدد الأغراض (MIME) الصحيح للمحتوى الذي تقوم بدفقه. للحصول على قائمة بأنواع MIME لملفات Office 2007، قم بزيارة موقع الويب التالي:
أنواع MIME لتنسيق ملف Office 2007 لتدفق محتوى HTTP
إذا كنت تستهدف عملاء ما قبل Office 2007 فقط، ولا تريد المطالبة باستخدام Open XML في الحل، يمكنك استخدام تنسيقات ملفات Office أخرى غير ثنائية، مثل HTML وXML وRTF. يمكنك عندئذ دفق هذه الملفات إلى عميل باستخدام نوع MIME بحيث يظهر النص الناتج في Office. يمكن تحرير المستند وحفظه وحتى إعادته إلى الخادم باستخدام ASP على الخادم.
لمزيد من المعلومات حول أي من هذه المواضيع، وللأمثلة التي توضح كيفية تنفيذها، حدد أرقام المقالات التالية لعرضها في "قاعدة معارف Microsoft":
198703 كيفية تنفيذ Excel تلقائيا من VBScript من جانب العميل
كيفية الاستعلام عن بيانات Excel وتحديثها باستخدام ADO من ASP
286023 كيفية استخدام مكون VB ActiveX للتنفيذ التلقائي Word من Internet Explorer
إذا كانت شركتك تتطلب إنشاء تنسيقات الملفات الثنائية من جانب الخادم Office 97 وOffice 2000 وOffice XP وOffice 2003، فإن موردي الجهات الخارجية سيقدمون المكونات التي يمكنها مساعدتك. لا توفر Microsoft أيا من هذه المكونات، لذا ستحتاج إلى إنشاء حل بنفسك أو شراء حل من مورد خارجي. تتوفر العديد من منتجات الجهات الخارجية المختلفة. يجب عليك التحقق من كل حل لمطابقة البائع بشكل أفضل مع احتياجات عملك.
إذا أردت إنشاء الحل الخاص بك الذي يقوم بتحرير تنسيقات الملفات الثنائية ل Office 97 وOffice 2000 وOffice XP وOffice 2003 مباشرة، يمكنك الحصول على مواصفات تنسيق الملف مجانا بموجب شروط Microsoft Open Specification Promise (OSP). لا يتوفر أي دعم تقني للوثائق أو المنتجات التي تقوم بإنشائها، ولكن الوثائق متوفرة.
وقد ترغب الحلول من جانب الخادم أيضا في السماح للمستخدمين بتحميل الملفات، ثم جعل الخادم يعرض الملفات لعرضها على الويب أو على وسائط أخرى. تعمل Microsoft حاليا على تقديم مثل هذه الميزات، وتوفر إصدارا مبكرا من هذه الإمكانية في Microsoft Excel Services.
إن Excel Services عبارة عن تقنية خادم جديدة مضمنة في Microsoft Office SharePoint Server 2007 وتمكنك من تحميل مصنفات Excel وحسابها وعرضها على Office SharePoint Server 2007. لمزيد من المعلومات حول Excel Services، قم بزيارة مواقع Microsoft Developer Network (MSDN) على الويب:
معاينة تفصيلية: تطوير تطبيق مخصص باستخدام Excel Web Services
إنشاء تطبيقات الأعمال باستخدام Excel Services وتنسيقات Office Open XML تعد الخدمات الآلية من Word تطبيق خدمة جديدا في SharePoint Server 2010. توفر خدمات أتمتة Word تحويلا غير مراقب للمستندات إلى تنسيقات يدعمها تطبيق عميل Microsoft Word.
نظرة عامة على خدمات أتمتة Word
مقدمة حول خدمات Word Automation تحتاج إلى تقييم الخيارات التي تتناولها هذه المقالة التي تناسب احتياجاتك، وأفضل طريقة لنشر الحل الخاص بك. المعلومات التي توفرها هذه المقالة غير مضمونة لحل كل المشاكل لجميع العملاء. نحن نشجعك على اختبار الحل بدقة قبل نشر الحل.