Fuslogvw.exe (عارض سجل ربط التجميع)

يقوم عارض سجل ربط التجميع بعرض تفاصيل حول ضم التجميع حيث تساعدك هذه المعلومات على تشخيص سبب تعذر .NET Framework على تحديد موقع تجميع في وقت التشغيل, فعادة ما يكون هذا الفشل نتيجة نشر تجميع إلى موقع غير صحيح أو صورة أصلية لم تعد صالحة أو عدم التطابق في أرقام الإصدار أو الثقافات, و فشل قيام وقت تشغيل اللغة العامة على تحديد موقع تجميع يظهر بشكل عام كـ TypeLoadException في التطبيق الخاص بك.

لعرض محتويات سجل ربط التجميع

يقوم العارض بعرض إدخال لكل فشل في ربط التجميع حيث إن كل مرة يفشل فيها يقوم العارض بوصف التطبيق الذي يبدأ الربط و سبب ربط التجميع بما فيها الاسم و الإصدار و الثقافة و المفتاح العام و تاريخ و وقت الفشل.

لتغيير موقع عرض السجل

  1. قم بتحديد زر الخيار افتراضي لعرض فشل ربط العرض لكافة أنواع التطبيق, فبشكل افتراضي يتم تخزين إدخالات السجل في الدلائل لكل مستخدم على القرص في ذاكرة التخزين المؤقت لـ wininet.

  2. قم بتحديد زر الخيار مخصص لعرض فشل الربط في دليل مخصص تقوم بتحديده حيث يجب عليك تحديد الموقع المخصص أين تريد أن يقوم وقت التشغيل بتخزين السجلات بواسطة إعداد موقع السجل المخصص في مربع الحوار إعدادات السجل لاسم دليل صالح, و يجب تنظيف هذا الدليل بحيث يحتوي فقط على الملفات التي قام بإنشائها وقت التشغيل, و إذا كان يحتوي على ملف قابل للتنفيذ فشل في تسجيله فإنه لن يتم تسجيل الفشل لأن الأداة تحاول إنشاء دليل يحمل نفس اسم الملف القابل للتنفيذ, و بالإضافة إلى ذلك ستفشل محاولة تشغيل ملف قابل للتنفيذ من موقع السجل.

    ملاحظةملاحظة

    إن موقع الربط الافتراضي هو المفضل لموقع الربط المخصصحيث يقوم وقت التشغيل بتخزين موقع الربط الافتراضي في ذاكرة التخزين المؤقت لـ wininet و بالتالي يمسحها تلقائياً,و إذا قمت بتحديد موقع ربط مخصص فإنك المسؤوول عن عملية التنظيف.

لعرض التفاصيل حول فشل معين

  1. قم بتحديد اسم التطبيق للإدخال المطلوب في العارض.

  2. انقر فوق الزر عرض السجل, و بدلاً من ذلك يمكنك النقر نقراً مزدوجاً فوق الإدخال المحدد.

    تقوم الأداة بعرض التفاصيل التالية حول فشل الربط المحدد:

    • السبب المحدد في فشل الربط مثل "لم يتم العثور على الملف" أو "عدم تطابق الإصدار".

    • معلومات حول التطبيق الذي يبدأ في الربط بما في ذلك اسمه و دليل الجذر للتطبيق (قاعدة التطبيق) و وصف مسار البحث الخاص في حالة وجوده.

    • هوية التجميع التي تبحث عنها الأداة.

    • وصف أي تطبيق أو ناشر أو نُهج الإصدار للمسؤول التي تم تطبيقها.

    • ما إذا تم العثور على التجميع في مخزن التجميع العمومي المؤقت.

    • قائمة بجميع عناوين التدقيق URL.

يقوم النموذج التالي لإدخال السجل بإظهار معلومات مفصلة حول عملية ربط التجميع الفاشلة.

*** Assembly Binder Log Entry  (3/5/2007 @ 12:54:20 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  C:\WINNT\Microsoft.NET\Framework\v2.0.50727\fusion.dll
Running under executable  C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\graphicfailtest.exe
--- A detailed error log follows. 

=== Pre-bind state information ===
LOG: DisplayName = graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
 (Fully-specified)
LOG: Appbase = C:\Program Files\Microsoft.NET\FrameworkSDK\Samples\Tutorials\resourcesandlocalization\graphic\cs\
LOG: Initial PrivatePath = NULL
LOG: Dynamic Base = NULL
LOG: Cache Base = NULL
LOG: AppName = NULL
Calling assembly : graphicfailtest, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
===

LOG: Processing DEVPATH.
LOG: DEVPATH is not set. Falling through to regular bind.
LOG: Policy not being applied to reference at this time (private, custom, partial, or location-based assembly bind).
LOG: Post-policy reference: graphicfailtest.resources, Version=0.0.0.0, Culture=en-US, PublicKeyToken=null
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.DLL.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources.EXE.
LOG: Attempting download of new URL file:///C:/Program Files/Microsoft.NET/FrameworkSDK/Samples/Tutorials/resourcesandlocalization/graphic/cs/en-US/graphicfailtest.resources/graphicfailtest.resources.EXE.
LOG: All probing URLs attempted and failed.

لحذف إدخال مفرد من السجل

  1. قم بتحديد إدخال ما في العارض.

  2. انقر فوق الزر حذف الإدخال.

لحذف جميع الإدخالات من السجل

  • انقر فوق الزر حذف الكل.

لتحديث واجهة المستخدم

  • انقر فوق الزر تحديث, و لكن لا يقوم العارض تلقائياً بالكشف عن إدخالات السجل الجديدة أثناء تشغيله حيث يجب عليك استخدام الزر تحديث حتى يتم عرضها.

لتغيير إعدادات السجل

  • انقر فوق الزر إعدادات لفتح مربع الحوار إعدادات السجل.

لعرض مربع الحوار "حول"

  • انقر فوق الزر حول.

يربط السجلات للصور الأصلية

بشكل افتراضي يقوم Fuslogvw.exe بتسجيل طلبات ربط التجميع العادي, و بدلاً من ذلك يمكنك تسجيل روابط التجميع للصور الأصلية التي تم إنشاؤها باستخدام Ngen.exe (مولد النسخة الأصلي).

لتسجيل روابط التجميع للصور الأصلية

  • في المجموعة تسجيل الفئات قم بتحديد زر الخيار الصور الأصلية.

يقوم السجل التالي بإظهار الفشل الذي حدث بسبب تبعية لم تكن موجودة عند إنشاء الصورة الأصلية الخاصة بالتطبيق, و إذا كانت التبعيات في وقت التشغيل تختلف عن التبعيات عند تشغيل Ngen.exe فإن ربطها بصورة أصلية غير مسموح به.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:22:07 PM) ***

The operation failed.
Bind result: hr = 0x80070002. The system cannot find the file specified.

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\App.exe
--- A detailed error log follows. 

LOG: Start binding of native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\App.exe.
LOG: Start validating native image App, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency b, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
WRN: Dependency assembly was not found at ngen time, but is found at binding time. Disallow using this native image.
WRN: No matching native image found.
LOG: Bind to native image assembly did not succeed. Use IL image.

يقوم السجل التالي بإظهار فشل ربط صورة أصلية الذي حدث بسبب إختلاف إعدادات الأمان على الكمبيوتر عند تشغيل التطبيق عن إعدادات الأمان في الوقت الذي تم إنشاء الصورة الأصلية فيه.

*** Assembly Binder Log Entry  (12/8/2006 @ 5:29:09 PM) ***

The operation failed.
Bind result: hr = 0x80004005. Unspecified error

Assembly manager loaded from:  E:\Windows\Microsoft.NET\Framework64\v2.0.50727\mscorwks.dll
Running under executable  E:\test\Application101622.exe
--- A detailed error log follows. 

LOG: Start binding of native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: IL assembly loaded from E:\test\Application101622.exe.
LOG: Start validating native image Application101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Start validating all the dependencies.
LOG: [Level 1]Start validating native image dependency mscorlib, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089.
LOG: Dependency evaluation succeeded.
LOG: [Level 1]Start validating IL dependency Dependency101622, Version=0.0.0.0, Culture=neutral, PublicKeyToken=null.
LOG: Dependency evaluation succeeded.
LOG: Validation of dependencies succeeded.
LOG: Start loading all the dependencies into load context.
LOG: Loading of dependencies succeeded.
LOG: Bind to native image succeeded.
Native image has correct version information.
Attempting to use native image E:\Windows\assembly\NativeImages_v2.0.50727_64\Application101622\1ac7fadabec4f72575d807501e9fdc72\Application101622.ni.exe.
Rejecting native image because it failed the security check. The assembly's permissions must have changed since the time it was ngenned, or it is running with a different security context.
Discarding native image.

مربع حوار إعدادات السجل

يمكنك استخدام مربع الحوار إعدادات السجل لتنفيذ الإجراءات التالية.

لتعطيل التسجيل

  • قم بتحديد زر الخيار معطّل السجل حيث لاحظ أنه تم تحديد هذا الخيار بشكل افتراضي.

لتسجيل روابط التجميع في استثناءات

  • قم بتحديد زر الخيار تسجيل في نص استثناء.

    راجع الملاحظة الهامة فيما يتعلق بالتجميعات التي يتم تحميلها باسم مجال محايد.

لتسجيل فشل ربط التجميع

  • قم بتحديد زر الخيار تسجيل فشل الربط إلى القرص.

    راجع الملاحظة الهامة فيما يتعلق بالتجميعات التي يتم تحميلها باسم مجال محايد.

لتسجيل كافة روابط التجميع

  • قم بتحديد زر الخيار تسجيل كافة الروابط إلى القرص.

    راجع الملاحظة الهامة فيما يتعلق بالتجميعات التي يتم تحميلها باسم مجال محايد.

ملاحظة هامةهام

عندما يتم تحميل تجميع باسم مجال المحايدة على سبيل المثال عن طريق تعيين الخاصية LoaderOptimization إلى LoaderOptimization.MultiDomain أو LoaderOptimization.MultiDomainHost و قد يؤدي تشغيل التسجيل إلى حدوث تسرب للذاكرة في بعض الحالات,حيث يمكن أن يحدث هذا إذا تم إجراء إدخال سجل عندما يتم تحميل وحدة نمطية لمجال محايد في مجال تطبيق و لكن لم يتم تحميل الإصدارات الأحدث لمجال التطبيق,و قد لا يمكن تحرير إدخال السجل حتى تنتهي العمليةحيث يقوم بعض المصححون بتشغيل التسجيل تلقائياً.

لتمكين مسار سجل مخصص

  1. قم بتحديد زر الخيار تمكين مسار السجل المخصص.

  2. قم بإدخال المسار في مربع النص مسار السجل المخصص.

ملاحظةملاحظة

يقوم Fuslogvw.exe (عارض سجل ربط التجميع) باستخدام ذاكرة التخزين المؤقت لمستكشف الإنترنت (IE) لتخزين سجل الربط الخاص به,و نتيجة للتلف في ذاكرة التخزين المؤقت IE فإن Fuslogvw.exe (عارض سجل ربط التجميع) يقوم أحياناً بإيقاف إظهار سجلات الربط الجديدة في نافذة العرض,و نتيجة لهذا التلف أيضاً فإنه لا يمكن الكتابة إلى (fusion) البنية التحتية لربط .NET أو القراءة من سجل الربط(هذه المشكلة لا تعتبر مصادفة إذا كنت تستخدم مسار سجل مخصص), فلإصلاح التلف ثم السماح بـ fusion لإظهار سجلات الربط مرة أخرى, قم بمسح ذاكرة التخزين المؤقت IE عن طريق حذف ملفات الإنترنت المؤقتة من ضمن مربع الحوار "خيارات الإنترنت IE".

إذا كان التطبيق الغير مدار يستضيف وقت تشغيل اللغة العامة عن طريق تطبيق الواجهات IHostAssemblyManager و IHostAssemblyStore فإنه لا يمكن تخزين إدخالات السجل في ذاكرة التخزين المؤقت لـ wininet,و يجب عليك تحديد مسار سجل بديل لعرض إدخالات السجل للمضيفين المخصصة التي تقوم بتطبيق هذه الواجهات.

راجع أيضًا:

المرجع

TypeLoadException

موجه أوامر Visual Studio.

المبادئ

ذاكرة التخزين المؤقتة للتجميع العمومي

كيفية تحديد وقت التشغيل مواقع التجميعات

موارد أخرى

أدوات .NET Framework