سؤال

جمعياتي التي لفت عمل DLL لجهة خارجية بخير في تطبيق Windows Test Harness، وهم أيضا العمل بشكل جيد في خدمة ويب عند طرده في وضع التصحيح (VS 2008 Visual Studio Development Server)! ومع ذلك، فإن التطبيق يحطم دائما عند التشغيل في خادم الويب الخاص ب IIS 7 محلي. فيما يلي تفاصيل التحطم من سجل الأحداث عند تشغيله على خادم IIS المحلي:

تطبيق الأخطاء W3WP.exe، الإصدار 7.0.6001.18000، طابع الوقت 0x47919413، وحدة تخفيض ntdll.dll، الإصدار 6.0.6001.18000، طابع الوقت 0x4791A783، رمز الاستثناء 0xC0000374، خطأ إزاحة 0x000aada3، معرف العملية 0x990، تطبيق وقت بدء التطبيق 0x01C9B4133281D5D0.

مناقشة: كتبت مجمع حول .NET DLL من طرف ثالث (LinkPointTransaction.dll من FirstData)، وكتبت بعض التجمعات الأخرى التي تشير إلى أن المجمع. نظرا لأن الرمز قيد التشغيل، اتصل بالطرف الثالث LinkPointTransaction.LinkPointTxn.Send() يرسل المعاملة بنجاح إلى FirstData عبر الإنترنت، ولكن تطبيقي تعطل W3WP.EXE في مكان ما خلال هذه الاتصال، قبل أن يضرب السطر التالي. لا يرمي استثناء مدار أستطيع أن أرى؛ انها تعطل فقط. يعمل بشكل جيد في كل مكان على جهازي إلا في IIS7.

أقوم بتشغيل Premium Home 64bit Vista (IIS7)، لكني قمت بتمكين تطبيقات 32 بت في IIS، أنشأت AppPool منفصلة فقط لخدمة الويب هذه، وقد أجبرت كل جمعياتي على X86. لقد حاولت تشغيل تجمع التطبيقات تحت حساب المستخدم الخاص بي مع امتيازات المسؤول بدلا من خدمة الشبكة. تم إيقاف تشغيل UAC. لقد حاولت الأوضاع المتكاملة والكلاسيكية. لقد فتحت صراحة منفذ TCP / IP في جدار الحماية المحلي الخاص بي الذي يستخدمه LinkPointTransaction.dll للتواصل مع FirstData. لقد أغلقت جدار الحماية الخاص بي (خلف جهاز التوجيه).

مع أي من هذه الحلول التي أدرجتها، دائما يعمل في تطبيق Windows وأيضا في خدمة ويب داخل خادم تطوير VS، ولكن أبدا يعمل في خادم IIS المحلي.

AppPool لموقع IIS في الوضع الكلاسيكي. (ردا على جيدون)

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

المحلول

لا أعتقد أن هذا سؤال برمجة بعد الآن، لذلك أنا "يجيب".

باستخدام WINDBG، قمت بتتبعه إلى DLL الذي يوفره البائع. عندما تعطل التطبيق، يبدو أن مشكلة مع الطريقة التي يقوم بها DLL في إزالة الذاكرة. تظهر مكدس المكالمات عملية شحن في الذاكرة في DLL، ثم عملية "خالية من الكومة" في النواة، ثم عملية "كومة مجانية" في NTDLL، و "فشل كومة" لاحق "فشل الكومة" (ثم rtlReportCriticalFailure) التي تمزق الشئ كله.

ما زلت لا أفهم لماذا يعمل في تطبيق نماذج Windows وفي IIS 6، ولكن لا يعمل في IIS 7. ومع ذلك، فقد أصبح هذا أكثر من سؤال منصة من سؤال "البرمجة". علاوة على ذلك، من المحتمل أن تكون مسؤولية البائعين لإصلاحها بدلا من العمل المحيط به.

تحديث: في غضون يومين من تقديم تذكرة الدعم الفني مع البائع، قدموا مجموعة محدثة من dlls التكامل التي تستخدم كائن COM الذي تقوم بتسجيله باستخدام Regsvr32، ويعمل في IIS7 64 بت إذا قمت بتسجيله في دليل WOW64 وبعد نعم للحصول على الدعم الفني للبيانات الأولى!

نصائح أخرى

سألت البيانات الأولى حول DLLs والقدرة على تشغيله على IIS7 / .NET 4 / WIN 2008 64 بت. كان هذا ردهم:

شكرا لاستفسارك الأخير بشأن أول بوابة البيانات العالمية. Webservice API هو حلنا الحالي لآلات 64 بت تعمل على IIS 7 كأي من ملفات DLL (LinkPointTransaction.dll، lpicom_6_.dll) سيتم تحديثها مع خادم 64 بت. ستحتاج WebService API إلى تثبيت شهادة العميل وإرسال المعاملة عبر طلب الصابون. تم العثور على معلومات إضافية حول WebService API في http://www.firstdata.com/Downloads/marketing-merchant/fdgg-web-service-api-v4.0.pdf..

إذا كنت بحاجة إلى مزيد من الإيضاحات أو الأسئلة، فيرجى الاتصال بمكتب الدعم الخاص بنا عبر رقم الهاتف أدناه. يرجى العلم أن ساعات مكتب دعم API هي من الساعة 9:00 صباحا إلى 6:00 م est mon-fri.

هذا يجب أن يساعد الآخرين في البحث عن معلومات مماثلة في المستقبل.

كيف يتم تكوين الموقع في IIS7؟ إذا كان يعمل في وضع التبديل المتكامل إلى الوضع الكلاسيكي. يرى تغييرات كسر تطبيقات ASP.NET 2.0 قيد التشغيل في الوضع المتكامل على IIS 7.0

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

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

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

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