بشكل افتراضي، هو حجم مكدس القصوى من مؤشر الترابط الذي تم إنشاؤه في عملية IIS أصلية 256 كيلوبايت

ينطبق على: Internet Information Services 8.0

ملخص


بشكل افتراضي، حجم مكدس القصوى من مؤشر الترابط الذي يتم إنشاؤه بواسطة عملية خدمات معلومات إنترنت ل Microsoft (IIS) أصلي هو 256 كيلو بايت قبل Windows Server 2008. على سبيل المثال، عندما Inetinfo.exe أو DLLHost.exe W3wp.exe إنشاء مؤشر ترابط في IIS 5.0 أو IIS 6.0، حجم مكدس القصوى من مؤشر الترابط 256 كيلو بايت بشكل افتراضي. يمكنك أيضا بشكل صريح استدعاء الدالة CreateThread لتحديد حجم مكدس مؤشر الترابط. في نظام التشغيل Microsoft Windows 2000، إذا قام بإنشاء مؤشر ترابط معالجة عامل ASP.NET Microsoft (ASPNet_wp.exe) هو حجم مكدس القصوى من مؤشر ترابط 1 ميغابايت. في Windows Server 2008 وأعلى، حجم مكدس القصوى من مؤشر ترابط يقوم بتشغيل إصدار 32 بت من IIS 256 كيلو بايت، ويوجد فيه x64 خادم 512 كيلو بايت.

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

مزيد من المعلومات


لم يتحدد حجم مكدس القصوى من مؤشر ترابط إلى ASP أو DLL ISAPI مكون فردي الذي يعمل داخل العملية. تم تكوين حجم مكدس القصوى من مؤشر ترابط بالملف القابل للتنفيذ للعملية. يجب أن يكون حجم مكدس كبيرة، يمكنك برمجياً إنشاء مؤشر ترابط وقم بتعيين حجم مكدس المناسبة. بدلاً من ذلك، إذا كان مؤشر الترابط نفدت حجم مكدس القصوى، يجب تغيير التعليمات البرمجية في التطبيق لاستخدام بنية تخزين العناصر بشكل صحيح.

يتم تخزين المتغيرات المحلية الدالة والوسيطات في مكدس مؤشر الترابط. إذا قمت بتعريف متغير محلي له قيمة كبيرة جداً، بسرعة استنفاد المكدس. على سبيل المثال، يتطلب الدالة في مثال التعليمات البرمجية التالي البايتات 400000 في مكدس لتخزين الصفيف.
void func(void)   {
int i[100000];
// Use 100,000 integers multiplied by 4 bytes per integer to store the array.
return;
}

ملاحظة: لا يمكن استدعاء هذه الدالة في IIS 4.0 أو IIS 5.0، في IIS 5.1 أو في IIS 6.0.

لتجنب استخدام المكدس، بشكل حيوي تخصيص الذاكرة. على سبيل المثال، في مثال التعليمات البرمجية التالي الدالة بشكل حيوي تخصيص الذاكرة.
void func(void)   {
int *i

i = new int[100000];
// More code goes here.
return;
}

ملاحظة: في هذا المثال التعليمات البرمجية، يتم تخزين الذاكرة في كومة الذاكرة المؤقتة بدلاً من المكدس. ولذلك، لا تتطلب الدالة البايتات 400000 في مكدس لتخزين الصفيف.

إذا كان يتم استدعاء دالة بشكل متكرر، قد استنفدت المكدس بشكل سريع. على سبيل المثال، يتطلب دالة البايتات 400000 في المكدس إذا تحققت الشروط التالية:
  • تتطلب الدالة 40 بايت لمتغير محلي.
  • الدالة يتم استدعاء 10000 مرة بشكل متكرر.
في تطبيق واجهة عبارة عامة (CGI)، لم يكن مؤشر ترابط مكدس الحد الأقصى حجم 256 كيلوبايت. عند بدء تشغيل تطبيق CGI، يتم إنشاء عملية جديدة، وتكوين الملفات القابلة للتنفيذ CGI حجم المكدس. يمكنك أيضا بشكل صريح استدعاء الدالة CreateThread لتحديد حجم مكدس مؤشر الترابط.

لمزيد من المعلومات، قم بزيارة موقع Msdn التالي: