1- متطلبات النظام لتثبيت برنامج .NET Framework 3.0
2- .NET Framework 3.0: مشكلات التثبيت المعروفة
3- خطوات استكشاف أخطاء التنزيل وإصلاحها
4- المشكلات المعروفة في Windows Communication Foundation
5- المشكلات المعروفة في Windows Workflow Foundation 6- المشكلات المعروفة في Windows Presentation Foundation
المعالج | الحد الأدنى:
المستحسن:
|
نظام التشغيل | يمكن تثبيت .NET Framework 3.0 على أي من الأنظمة التالية:
*يتم تضمين Windows Vista مع .NET Framework 3.0. لذلك لا يلزم وجود حزمة تثبيت منفصلة. حزم .NET Framework 3.0 المستقلة غير معتمدة في نظام Vista. |
ذاكرة الوصول العشوائي | الحد الأدنى:
المستحسن:
|
القرص الثابت | قد يلزم توفّر مساحة تصل إلى ٥٠٠ ميغابايت. |
محرك الأقراص المضغوطة أو محرك أقراص DVD | غير مطلوب. |
شاشة العرض | الحد الأدنى:
المستحسن:
|
الماوس | غير مطلوب |
عند بدء تشغيل مثبِّت .NET Framework 3.0، يكون الوضع الافتراضي للتثبيت هو محرك أقراص النظام، وهو محرك الأقراص الذي يتم إجراء تمهيد للنظام منه. الرجاء التأكد من توفّر المساحة المطلوبة (حتى ٥٠٠ ميغابايت) على محرك أقراص النظام.
يفشل تنزيل .NET Framework 3.0 وتثبيته بشكل متقطع.
لحل هذه المشكلة
قم بإعادة تشغيل dotnetfx3setup.exe من موقع الويب وحاول التنزيل مرة أخرى. انقر هنا للحصول على معلومات حول استكشاف أخطاء التنزيل وإصلاحها.
- أو -
قم بتثبيت حزمة إعادة التوزيع الكاملة dotnetfx3.exe(x86) أو dotnetfx3_x64.exe (x64). يمكنك الحصول على حزم إعادة التوزيع هذه من موقع تنزيل .NET Framework 3.0.
إذا كان الإعداد يتطلب إعادة تمهيد، وتم تعيين تطبيق الحماية من الفيروسات لتنظيف الدليل Temp عند بدء التشغيل، سيتم حذف ملفات الإعداد الضرورية وسيفشل الإعداد مع ظهور خطأ يشير إلى أنه لم يتم العثور على البرنامج.
لحل هذه المشكلة
قبل تشغيل إعداد .NET Framework 3.0، قم بتغيير تكوين تطبيقات الحماية من الفيروسات بحيث لا تقوم بتنظيف المجلد Temp عند بدء التشغيل أو إعادة التمهيد. راجع الوثائق الخاصة ببرنامج الحماية من الفيروسات للتعرف على خطوات تنفيذ هذا الإجراء.
في حالة وجود عمليات أخرى قيد التشغيل عند بدء تشغيل "وضع الصيانة"، مثل برامج الكشف عن الفيروسات، قد تؤدي هذه العمليات إلى بطء الإعداد بشكل ملحوظ وإعطاء الانطباع بفشل الإعداد.
لحل هذه المشكلة
كن صبورًا. لا يوجد حل بديل لهذه المشكلة. وذلك لأن الإعداد لم يفشل.
قد يظهر الخطأ "الرجاء إلغاء تثبيت Windows Workflow Foundation" أثناء تثبيت .NET Framework 3.0، ولكن لا يوجد إدخال في الأداة المساعدة "إضافة أو إزالة البرامج" لإلغاء تثبيت المنتج Windows Workflow Foundation.
لحل هذه المشكلة
قم بتشغيل أداة إلغاء التثبيت من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146
في نظامي التشغيل Windows XP SP2 وWindows 2003 SP1، إذا كان لديك إصدار مترجم من MSXML6 تم تثبيته مسبقًا، سيقوم تثبيت .NET Framework 3.0 بالكتابة على هذا الإصدار المترجم ليحل محله إصدار اللغة الإنجليزية.
لحل هذه المشكلة
قم بإعادة تثبيت الإصدار المترجم من MSXML6 بعد تثبيت .NET Framework 3.0.
يتم تضمين .NET Framework 3.0 في نظام التشغيل Windows Vista. لذلك لا يلزم وجود حزمة تثبيت منفصلة. حزم .NET Framework 3.0 المستقلة غير معتمدة في نظام Vista.
يوضح هذا المقطع المشكلات التي يمكن مصادفتها إذا قمت مسبقًا بتثبيت إصدار ما قبل النشر (CTP وبيتا) لبرنامج .NET Framework 3.0 وأردت إزالته للترقية إلى إصدار RTM.
قم بتشغيل أداة إلغاء التثبيت
تتوفر أداة إلغاء تثبيت برنامج .NET Framework 3.0 من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146. تعمل هذه الأداة على حل العديد من مشكلات إلغاء التثبيت وتعد أفضل خطوة أولى في محاولة حل مشكلات إلغاء التثبيت/إعادة التثبيت. يتم عرض تفاصيل حول الاستخدام الصحيح للأداة في صفحة التنزيل.
إذا لم تتمكن من تشغيل الأداة أو إذا لم تقم تلك الأداة بحل المشكلة، يرجى مراجعة مقطع المشكلات المعروفة والحلول البديلة أدناه للتعرف على الحلول المحتملة.
ملاحظة: تحدث مشكلات التثبيت هذه فقط إذا قمت بتثبيت إصدار ما قبل النشر من برنامج .NET Framework 3.0 على النظام قبل تثبيت إصدار RTM. تمت معالجة المشكلات التي تسبب هذه الإجراءات في النسخ الحديثة من إصدار ما قبل النشر من برنامج .NET Framework 3.0.
المشكلات المعروفة والحلول البديلة
2-7-1 عدم حذف خدمة "Microsoft Digital Identity Service" (idsvc) عند إلغاء التثبيت
عند إلغاء التثبيت، لا تقوم بعض إصدارات ما قبل النشر من برنامج .NET Framework 3.0 بحذف كافة الخدمات التي تقوم بإنشائها بشكل صحيح. ويؤدي وجود إحدى هذه الخدمات على النظام إلى حظر تثبيت .NET Framework 3.0. يفشل تثبيت البرنامج مع ظهور هذا الخطأ:
ERROR_INSTALL_FAILURE 1603 حدث خطأ فادح أثناء التثبيت
كما يظهر ما يلي في أحد ملفات السجل %temp%\dd_wcf_retCA*.txt:
ServiceModelReg [15:48:08:041]: تثبيت: Microsoft Digital Identity Service (idsvc)
ServiceModelReg [15:48:08:073]: الخطأ: System.ComponentModel.Win32Exception: الاسم مستخدم بالفعل كاسم خدمة أو اسم عرض خدمة
لحل هذه المشكلة
قم بتشغيل أداة إلغاء التثبيت من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146
إذا استمرت المشكلة:
فافتح موجه أوامر.
2-7-2 لا يتم حذف بعض مفاتيح تسجيل عدادات أداء WCF عند إلغاء تثبيت بعض إصدارات ما قبل النشر من برنامج .NET Framework 3.0
لا تقوم بعض إصدارات ما قبل النشر من برنامج .NET Framework 3.0 بإزالة كافة مفاتيح تسجيل عدادات الأداء عند إلغاء التثبيت. يؤدي وجود هذه المفاتيح إلى حظر تثبيت برنامج .NET Framework 3.0. يفشل تثبيت البرنامج مع ظهور هذا الخطأ:
"ERROR_INSTALL_FAILURE 1603 خطأ فادح أثناء التثبيت"
قد تكون المفاتيح التالية موجودة في السجل بعد إلغاء التثبيت:
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance
لحل هذه المشكلة
قم بتشغيل أداة إلغاء التثبيت من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=AAE7FC63-D405-4E13-909F-E85AA9E66146
إذا استمرت المشكلة:
1- فجرّب إعادة التمهيد. يمكن أن تتسبب العديد من المشكلات في عدم استقرار عدادات الأداء. قد تؤدي إعادة التمهيد إلى إصلاح بعض هذه المشكلات، ويعتبر هذا الحل أكثر أمنًا من تحرير السجل بشكل يدوي.
2- إذا لم يؤدِ ذلك إلى حل المشكلة:
أ- فتحقق من مفاتيح التسجيل التالية. واحذف مفاتيح التسجيل الأصلية الخاصة بأي من المفاتيح التالية سواء كانت فارغة أو تحتوي قيمها على "Wbem*":
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\MSDTC Bridge 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelOperation 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelService 3.0.0.0\Performance
• HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\SMSvcHost 3.0.0.0\Performance
ب- على سبيل المثال، إذا كان هذا المفتاح فارغًا:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0\Performance
يجب حذف المفتاح التالي:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\ServiceModelEndpoint 3.0.0.0"
2-7-3 تؤدي إدخالات machine.config القديمة التي تشير إلى الإصدارات "2.0.0.0" من تجميعات برنامج .NET Framework 3.0 إلى حظر التثبيت
لا تقوم بعض إصدارات ما قبل النشر من برنامج .NET Framework 3.0 بإزالة كافة إدخالات machine.config عند إلغاء التثبيت. وتقوم أي إدخالات تشير إلى الإصدار 2.0.0.0 من "System.ServiceModel.dll" في ملف machine.config بحظر تثبيت برنامج .NET Framework 3.0. يفشل تثبيت البرنامج مع ظهور هذا الخطأ:
"ERROR_INSTALL_FAILURE 1603 خطأ فادح أثناء التثبيت"
وعلاوة على ذلك:
1- يظهر حدث خطأ في سجل أحداث التطبيق والذي يشير إلى المشكلات التي تحدث أثناء تشغيل ServiceModelReg.exe.
2- يحتوي ملف سجل الإعداد الذي يحمل عنوان "dd_wcf_retCA*" في موقع دليل %temp% الخاص بالمستخدم على إدخال يشير إلى المشكلات التي تحدث أثناء تشغيل ServiceModelReg.exe.
3- قد يحتوي إدخال سجل الأحداث أو إدخال سجل الإعداد على استثناء مشابه لما يلي (وإن كان الطابع الزمني يختلف):
ServiceModelReg [16:21:10:656]: الخطأ: System.IO.FileLoadException: تعذر تحميل الملف أو التجميع 'System.ServiceModel, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089' أو أحد تبعياته. تعريف ملف التجميع الذي تم تحديد موقعه لا يطابق مرجع التجميع. (استثناء من HRESULT: 0x80131040)
لحل هذه المشكلة
قم بإزالة إدخالات machine.config القديمة بشكل يدوي:
1- من إطار الأمر، قم بتشغيل "notepad %windir%\microsoft.net\framework\v2.0.50727\config\machine.config"
2- قم بإزالة أي عقد XML أو أي عقد فرعية تشير إلى System.ServiceModel.dll.
3- إذا كنت تعمل على جهاز كمبيوتر يعمل بنظام 64 بت وكان ملف التكوين التالي موجودًا:
"%windir%\Microsoft.NET\Framework64\v2.0.50727\config\machine.config"
فقم بتحرير الملف لإزالة أي عقد XML وأي عقد فرعية تشير إلى System.ServiceModel.dll.
2-7-4 قد تتعذر استضافة خدمات WCF على ويب في حالة تثبيت إصدار Pre-RC1 من WCF مسبقًا
إذا قمت بتثبيت إصدار سابق من برنامج .NET Framework 3.0 بينما كانت خدمات معلومات الإنترنت (IIS) مثبتة، فعندما تقوم بالترقية إلى إصدار RTM من برنامج .NET Framework 3.0 فقد تواجه بعض الصعوبات في الوصول إلى خدمات WCF المضيفة على IIS باستخدام ملفات .svc. في أجهزة الكمبيوتر التي تعمل بنظام Windows Server 2003، قد يؤدي الوصول إلى امتداد .svc من المستعرض إلى إرجاع الخطأ "404: لم يتم العثور على الصفحة". في أجهزة الكمبيوتر التي تعمل بنظام Windows XP، قد يتم عرض محتويات .svc كنص عادي.
يرجع السبب في ذلك إلى مشكلة في عمليات تسجيل تعيين البرنامج النصي WCF في إصدار سابق.
لحل هذه المشكلة
هناك ثلاث طرق لحل هذه المشكلة:
1- تنزيل الأداة غير المدعومة، CleanIISScriptMaps.exe، من الموقع التالي: http://wcf.netfx3.com/files/folders/product_team/entry5648.aspx. تشغيل الأداة من وحدة تحكم بالأوامر دون أي وسائط.
2- إلغاء تثبيت IIS وإعادة تثبيتها أو إعادة إنشاء مواقع الويب الخاصة بك:
أ- إلغاء تثبيت IIS وإعادة تثبيتها بحيث يتم تحديث قاعدة تعريف IIS. وبعد ذلك، تشغيل أداة تثبيت WCF بشكل يدوي لإعادة تسجيل تعيينات البرامج النصية WCF:
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /r /y
ب- إذا كنت تعمل بنظام Windows 2003 Server، فقد يكون بإمكانك حل المشكلة عن طريق حذف "موقع الويب الافتراضي" وإعادة إنشائه.
3- تثبيت .svc بشكل يدوي كحل بديل مؤقت:
أ- يمكنك تشغيل الأمر التالي لتثبيت تعيين .svc بشكل يدوي. ولكن يؤدي ذلك إلى تحديث قاعدة تعريف IIS للمواقع الموجودة.
"%windir%\Microsoft.NET\Framework\v3.0\Windows Communication Foundation\ServiceModelReg.exe" /s:W3SVC
2-7-5 يؤدي تلف قاعدة تعريف IIS إلى حظر تثبيت برنامج .NET Framework 3.0
إذا قمت بتثبيت إصدار سابق من برنامج .NET Framework 3.0 بينما كانت خدمات معلومات الإنترنت (IIS) مثبتة، فقد تكون قاعدة تعريف IIS تالفة. وقد يؤدي ذلك إلى حظر تثبيت برنامج .NET Framework 3.0.
يمكنك تحديد هذه المشكلة من خلال الطرق التالية:
1- يفشل تثبيت البرنامج مع ظهور هذا الخطأ:
"ERROR_INSTALL_FAILURE 1603 خطأ فادح أثناء التثبيت"
2- يظهر حدث خطأ في سجل أحداث التطبيق والذي يشير إلى حدوث فشل في تسجبل تعيينات البرامج النصية WCF. يتمثل مصدر الحدث في System.ServiceModel.Install.dll 3.0.0.0.
3- ستحتوي سجلات الإعداد أيضًا في دليل %temp% على مراجع إلى فشل في تسجيل مخططات البرنامج النصي WCF.
4- قد يحتوي سجل الأحداث أو سجل الإعداد على تتبع مكدس الاستثناء التالي:
System.ApplicationException: اكتشف ServiceModelReg.exe تلفًا محتملاً في قاعدة تعريف IIS يمنع تسجيل تعيينات البرامج النصية ServiceModel IIS. يرجى إصلاح تلف قاعدة تعريف IIS، أو تعطيل خدمة IISAdmin وإعادة تسجيل ServiceModel إذا كنت لا تريد وظيفة ServiceModel WebHost.
لحل هذه المشكلة
1- قم بإلغاء تثبيت IIS.
2- قم بإعادة تثبيت IIS.
3- قم بإعادة تشغيل إعداد برنامج .NET Framework 3.0.
يحدث هذا الخطأ عندما يتم تعطيل خدمة BITS أو عندما تكون غير موجودة أو تم حذفها من تطبيق الخدمات أو تم إيقافها عندما كان التنزيل قيد التنفيذ أو في حالة فشل أو حذف أية خدمة تعتمد عليها خدمة BITS. وتكون رسالة الخطأ لهذه المشكلة هي "يجب أن يتم تمكين خدمة BITS قبل بدء عملية التثبيت. قم بتمكين خدمة BITS ثم قم بتشغيل الإعداد مرة أخرى".
لحل هذه المشكلة
services.msc
ثم انقر فوق موافق.ملاحظة: في حالة عدم ظهور خدمة Background Intelligent Transfer Service في القائمة، فهذا يعني أنها غير مثبتة على جهاز الكمبيوتر. يمكنك تنزيل "خدمة النقل الذكي في الخلفية" (BITS) وتثبيتها من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=B93356B1-BA43-480F-983D-EB19368F9047&displaylang=en.
إذا لم تؤدِ هذه الخطوات إلى حل المشكلة، فقد يلزم تمكين الخدمات التي تعتمد عليها خدمة BITS.
لتمكين التبعيات
تحدث هذه الأخطاء في حالة عدم تسجيل واجهات خدمة BITS أو في حالة تلف إعدادات السجل.
لحل هذه المشكلة
قم بالترقية إلى الإصدار BITS 2.0 من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?FamilyId=B93356B1-BA43-480F-983D-EB19368F9047&displaylang=en.
- أو -
قم بإصلاح خدمة BITS عن طريق تشغيل الأداة bitsadmin من موجه الأوامر:
Bitsadmin /util /repairservice /force
يمكنك تنزيل الأداة Bitsadmin من الموقع التالي: http://www.microsoft.com/downloads/details.aspx?amp;displaylang=en&familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en.
يمكن أن تحدث هذه الأخطاء لأحد الأسباب التالية أو أكثر:
لحل هذه المشكلة
قم بتوفير الإعدادات الصحيحة لخادم الوكيل وتأكد من أن جهاز الكمبيوتر الخاص بك يمكنه تحليل خادم الوكيل بشكلٍ صحيح.
- أو -
قم بالترقية إلى الإصدار BITS 2.0. يمكنك تنزيل الإصدار BITS 2.0 من الموقع التالي:
http://www.microsoft.com/downloads/details.aspx?amp;displaylang=en&familyid=49AE8576-9BB9-4126-9761-BA8011FABF38&displaylang=en.
ملاحظة لحل هذه الأخطاء، قم بإنهاء الإعداد وتأكد من أنك متصل بالشبكة، ثم قم ببدء تشغيل الإعداد مرة أخرى.
تحدث هذه الأخطاء عندما تفشل "خدمة النقل الذكي في الخلفية" (BITS) في إنشاء أحد الملفات أو الكتابة إليه. قد يكون هناك برنامج آخر، مثل chkdsk.exe، قيد التشغيل وقام بتأمين القرص ومنع خدمة BITS من الكتابة إلى الملف.
لحل هذه المشكلة
قم بالتأكد من عدم تشغيل أي برنامج آخر (على سبيل المثال، chkdsk.exe) يمكن أن يقوم بتأمين القرص وحاول التنزيل مرة أخرى.
- أو -
قم بإعادة تشغيل جهاز الكمبيوتر ثم قم ببدء تشغيل الإعداد مرة أخرى. تأكد من أنك متصل بالإنترنت.
فشلت خدمة BITS بسبب أحد الأخطاء التالية المرتبطة بالوكيل:
لحل هذه المشكلة
قم بتوفير بيانات الاعتماد الصحيحة الخاصة بمصادقة خادم الوكيل ثم قم بإعادة تشغيل الإعداد مرة أخرى.
- أو -
قم بترقية خادم الوكيل بحيث يعتمد HTTP 1.1 وتأكد من أن الوكيل يعتمد بيانات الاعتماد الضمنية (مثل NTLM). قد يلزم الاتصال بمسؤول الشبكة.
- أو -
قم بتجاوز الوكيل عن طريق تغيير إعدادات الوكيل في برنامج Internet Explorer.
لتجاوز خادم الوكيل، اتبع الخطوات التالية:
إذا كنت في حاجة لمساعدة إضافية في إعدادات خادم الوكيل، فاتصل بمسؤول الشبكة.
لا يتم تشغيل "خدمة النقل الذكي في الخلفية" (BITS) في:
لحل هذه المشكلة
لا يوجد حل لهذه المشكلة. هذه السيناريوهات غير معتمدة.
4-10 حدث استثناء عند تشغيل خدمة TCP وTCP MEX على نفس المنفذ
عند تمكين مشاركة المنافذ، يؤدي تكوين خدمة TCP ونقطة نهاية TCP MEX لاستخدام نفس المنفذ إلى حدوث استثناء AddressAlreadyInUse عند بدء تشغيل الخدمة.
هناك طريقتان لحل هذه المشكلة:
1- تغيير التكوين الخاص بخدمة TCP ونقاط نهاية TCP MEX لاستخدام منافذ مختلفة.
2- تمكين مشاركة المنافذ لـ TcpTransportBindingElement الخاص بنقطة نهاية TCP MEX. تقوم التعليمات البرمجية التالية بتوضيح هذه العملية:
ServiceMetadataBehavior mexBehavior = new ServiceMetadataBehavior();
host.Description.Behaviors.Add(mexBehavior);
Binding mexBinding = MetadataExchangeBindings.CreateMexTcpBinding();
CustomBinding mexBinding2 = new CustomBinding(mexBinding);
mexBinding2.Elements.Find<TcpTransportBindingElement>().PortSharingEnabled = true;
host.AddServiceEndpoint(typeof(IMetadataExchange), mexBinding2, mexAddress);
4-11 رسائل الخطأ > يمكن أن تؤدي 64 كيلوبايت إلى حدوث استثناء ProtocolException
عندما تكون قيمة MaxBufferSize هي Int.MaxValue على الأقل- 1024 بايت (2147482623 بايت)، فإن إرسال رسالة خطأ أكبر من 64 كيلوبايت يؤدي إلى استلام العميل استثناء ProtocolException بدلاً من استثناء FaultException. بالنسبة لعمليات النقل المخزنة مؤقتًا، تكون قيمة MaxBufferSize هي نفس قيمة MaxReceivedMessageSize. ويؤثر ذلك فقط على الخدمات التي تستخدم نقل HTTP(S).
لحل هذه المشكلة، قم بتعيين قيمة MaxBufferSize (MaxReceivedMessageSize) إلى Int.MaxValue - 1025 بايت (2147482622 بايت) أو أقل. وبدلاً من ذلك، يمكنك مباشرة تعيين HttpWebRequest.DefaultMaximumErrorResponseLength إلى الحد المطلوب. وسيؤثر تعيين DefaultMaximumErrorResponseLength في كل القنوات الموجودة في نفس مجال التطبيق.
4-12 يتعذر استخدام كلٍ من EncryptBeforeSign وXmlSerializerFormatAttribute في نفس العقد
لا يعمل أمان الرسالة مع أمر حماية EncryptBeforeSign بشكل صحيح في حالة استخدام XmlSerializerFormatAttribute في العقد. في حالة استخدامهما معًا، يقوم WCF بإنشاء الرسائل بمحتوى نص غير صالح بعد فك التشفير - ويتم إنشاء تعليمات معالجة <?xml ..> إضافية قبل أول عنصر للنص.
لتجنب هذه المشكلة، يجب عدم استخدام EncryptBeforeSign مع XmlSerializerFormatAttribute في نفس العقد.
4-13 تتعذر استضافة قنوات WS-ReliableMessaging باستخدام إصدارات مختلفة من WS-Addressing
يتعذر على AppDomain استضافة قنوات WS-ReliableMessaging التي تستخدم إصدارات مختلفة من WS-Addressing. في هذه السيناريوهات، تحدد أول قناة نشطة إصدار رؤوس إجراء WS-Addressing لكل رسائل البروتوكول اللاحقة، حتى لو تم إرسال تلك الرسائل بواسطة قناة تم تكوينها لاستخدام إصدار مختلف من بروتوكول العنونة.
إذا كنت بحاجة إلى تطبيق أو خدمة مفردة لإنشاء قنوات WS-ReliableMessaging التي تستخدم إصدارات مختلفة من، فاستخدم AppDomain منفصلاً لكل إصدار منها. عندما تكون خدمة WCF مضيفة على ويب، فإنك ستحتاج إلى استخدام دليلين ظاهريين - أحدهما لاستضافة الخدمات مع نقاط نهاية WS-Addressing 1.0 والآخر مع نقاط نهاية WS-Addressing المقدمة في أغسطس 2004.
<system.webServer>
<modules>
<add name="WorkflowHost" type="System.Workflow.Runtime.Hosting.WorkflowWebHostingModule, System.Workflow.Runtime, Version=3.0.00000.0, Culture=neutral, PublicKeyToken=31bf3856ad364e35" preCondition="runtimeVersionv2.0" />
</modules>
</system.webServer> |
لا يمكن إضافة خدمة ExternalDataExchangeService لمثيلات WorkflowRuntime متعددة. في أي وقت يتم فيه إنشاء مثيل WorkflowRuntime جديد، يجب أن يتم إنشاء خدمة ExternalDataExchangeService جديدة، كما يجب أن تتم إضافة أية خدمات اتصال محلية إلى خدمة ExternalDataExchangeService مرة أخرى.
إذا قمت بإنشاء نشاط مركب مخصص يحتوي على نشاط تابع يعمل على تطبيق ICompensatable ونشاط CompensateActivity يعمل على تعويض النشاط المركب، ولكن لا يعوض النشاط التابع بشكلٍ واضح، فسيفشل التعويض مع استثناءات في حالة وجود نشاط مخصص في سير العمل.
لتجنب هذه المشكلة، يجب تغليف كافة الأنشطة التابعة الخاصة بالنشاط المخصص في نشاط CompensatableSequenceActivity وتطبيق التعويض على نشاط CompensatableSequenceActivity هذا.
إذا كان الحل يحتوي على مشروعات متعددة، فإن دلائل المشروعات يجب أن تكون نظيرة لبعضها البعض. إذا قمت بتغيير بنية المشروع بحيث يكون لكل مشروع جذر ضمن دليل مشروع آخر، فإنك قد تصادف أخطاءً غير متوقعة في التحويل البرمجي للعلامات أثناء عملية إعادة الإنشاء؛ تشير إلى تعذر العثور على أحد الأنواع في مكتبة ارتباط ديناميكي DLL مشار إليها (من أحد المشروعات التابعة).
تتمثل الحلول البديلة فيما يلي: