سؤال

أنا أعمل على تطبيق Silverlight 4 كبير إلى حد ما (42 مشروعًا في حل واحد) ، وأنا أتصارع مع مشكلة غريبة حقًا.

يعمل التطبيق بشكل جيد في بناء تصحيح الأخطاء ، وحتى في الإصدار ، يتم تشغيله مع مرفق الأخطاء المرفقة (F5) ، ولكن عندما يتم تشغيله دون تصحيح أحمال Silverlight XAP ثم يعرض فقط صفحة فارغة.

أنا أتعامل مع application_unhandledexception التي لا تطلق النار ، لذلك يكاد يكون من المستحيل الحصول على أي معلومات مفيدة منه ، خاصة وأنني لا أستطيع إعادة إنتاج هذا السلوك مع مرفق الأخطاء.

ما هي الاختلافات الموجودة في وقت التشغيل عندما يتم إرفاق الأخطاء التي قد تسبب هذه المشكلة؟

تحرير: يجب أن أضيف أيضًا أن بناء التصحيح يعمل أيضًا دون إرفاق مصحح الأخطاء.

هل كانت مفيدة؟

المحلول

اتضح أن المشكلة هي أن بناء الإصدار يؤدي بعض التحسينات التي تغير مجموعة الاتصال.

نقوم بتسجيل الأنواع في حاوية IOC باستخدام التفكير ، وفي تجميع debug.getCallingAssembly (). gettypes () يعيد دائمًا التجميع المتوقع. ولكن في وضع الإصدار ، فإن مجموعة الاتصال هي مجموعة DynamicMethods المستضافة مجهول الهوية ، وبالتالي لم يتم تسجيل أنواعنا في حاوية IOC ، وتعطل التطبيق في وضع الإصدار.

كان الإصلاح هو استخدام هذا. getType (). التجميع بدلاً من ذلك.

ما هي المشكلة هي أن Silverlight تعرض فقط صفحة فارغة عندما يتم إلقاء استثناء من حاوية IOC ، لذلك من الصعب للغاية تحديد سبب الفشل. بالتأكيد هناك طريقة لتغيير هذا السلوك؟

نصائح أخرى

سبب شائع لصفحات فارغة على نشر IIS هو عدم وجود تعريفات أنواع MIME. اعتمادًا على نوع تطبيق Silverlight ، يجب على المرء إضافة واحد أو أكثر من الأنواع التالية:

.xap application/x-silverlight-app .xaml application/xaml+xml .xbap application/x-ms-xbap

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top