يقتل "منع تنفيذ البيانات" (VS2008) خادم تطوير ASP.Net المحلي (المعروف أيضًا باسم Cassini) على نظام التشغيل Vista 64

StackOverflow https://stackoverflow.com/questions/19349

  •  09-06-2019
  •  | 
  •  

سؤال

في بعض الأحيان، أجد أنه أثناء تصحيح أخطاء تطبيق ASP.Net (المكتوب في Visual Studio 2008، والذي يعمل على نظام التشغيل Vista 64 بت) فإن خادم تطوير ASP.Net المحلي (أي.'كاسيني') يتوقف عن الاستجابة.

غالبًا ما تأتي رسالة تخبرني أن "منع تنفيذ البيانات (DEP)" قد أدى إلى قتل WebDev.WebServer.exe

تخبرني سجلات الأحداث ببساطة أن "WebDev.WebServer.exe توقف عن العمل"

لقد سمعت أن هذه "المشكلة" تظهر في كثير من الأحيان على نظام التشغيل Vista 64 بت لأن DEP قيد التشغيل بشكل افتراضي.ومن ثم، فإن إيقاف تشغيل ميزة DEP قد "يحل" المشكلة.

لكني أتساءل:

هل هناك خطأ/موقف معروف في Cassini يتسبب في قيام DEP بإنهاء العملية؟

وبدلاً من ذلك، ما هو الخطر العملي المتمثل في تعطيل ميزة "منع تنفيذ البيانات"؟

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

المحلول

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

ومع ذلك، بدلاً من القيام بذلك، لماذا لا تستخدم IIS؟

يحرر:

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

نصائح أخرى

أنت في نظام فيستا، لقد تحسن الوضع (7)، وبقيت كاسيني في حالة سيئة.

لذا، ما عليك سوى تشغيل هذا التطبيق على iis برأس مضيف وإدخال ملف المضيفين.

يمكنك منح استثناء برامج معينة من DEP إذا كنت بحاجة لذلك.

مثل جوناثان

يذكر أن هذا يفتح أي ثغرات أمنية قد تكون موجودة في التطبيق.

إن استخدام IIS في Visual Studio ليس هو الألم الذي كان عليه في 1.1/VS02/03 يومًا.هناك الكثير من الأسباب الوجيهة لتفضيل IIS على خادم Cassini (مقالات بقلم دومينيك باير):

تعتبر كاسيني ضارة
سبب آخر يجعلني لا أوصي بكاسيني

دومينيك هو "الرجل" عندما يتعلق الأمر بـ IIS والأشياء الأمنية.

عند استخدام IIS لتطبيق ويب، أقوم دائمًا بإنشاء التطبيق في IIS أولاً، وتوجيهه إلى المجلد المفضل لدي، ثم الحصول على VS لإنشاء المشروع.وهذا يعني أنك لن ينتهي بك الأمر إلى ازدحام c:\inetpub\wwwroot مع تطبيقات الويب الخاصة بك.

بالطبع، لدينا الآن IISExpress والذي إذا كنت تستهدف IIS7.x فهو الخيار الواضح لتطوير تطبيقات ASP.NET في Visual Studio.

شكرا على الإجابات.أعتقد أنني طورت هذا النفور من IIS في عصر .net 1.x لدرجة أنني رفضت التفكير في إعادة استخدامه - حتى الآن.

جانبا:عند الاختيار بين إجابتين مقبولتين بشكل متساوٍ من ChanChan وJonathan، قمت بشكل تعسفي بوضع علامة "مقبول" على جوناثان لأنه أ) حصل على المركز الأول وب) ممثله أقل حاليًا.

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