سؤال

نريد تبديل خادم الويب من Windows 2003 إلى Windows 2003 Enterprise (64 بت) لاستخدام 8 جيجابايت من ذاكرة الوصول العشوائي.هل سيتمكن IIS 6.0 وتطبيق ASPNET 1.1 من الاستفادة من التغيير؟

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

المحلول

نظرًا لأن ASP.Net 1.1 لا يحتوي على دعم x64، فأنت مقيد بتشغيل IIS 6 باستخدام عمليات عاملة 32 بت.لا يقوم رمز التبديل /3GB بأي شيء على الإصدار x64، لكن الإصدار x64 يمنح عمليات 32 بت في الأصل 4 غيغابايت بدلاً من 2 غيغابايت، لذلك سيكون لديك المزيد من الذاكرة المتاحة لعملياتك العاملة.

ستحتاج إلى ضبط AppPools على 32 بت:

cscript %SystemDrive%\inetpub\AdminScripts\adsutil.vbs set w3svc/AppPools/Enable32bitAppOnWin64 1

يمكنك التفكير في تعديل ذاكرة ASP.net من 60% من التطبيق إلى 80%، وهو الأمر الذي حققنا بعض النجاح فيه.

<system.web> 
  <processModel memoryLimit="80" />
</system.web> 

يمكن أن يؤدي ذلك إلى الضغط على تجمع التطبيقات عندما تصل إلى نطاق 1.2 جيجابايت إلى 1.6 جيجابايت.

ومن الأمور الأخرى التي يجب أخذها في الاعتبار أن معظم تطبيقات ASP.Net 1.1 لا تواجه مشكلات عند تشغيلها في تجمع تطبيقات 2.0، مما يسمح لك بسهولة تحويل تطبيق 1.1 32 بت إلى تطبيق 2.0 64 بت.لا يتطلب هذا أي إعادة ترجمة، فقط قم بتغيير تجمع التطبيقات إلى 2.0، ثم قم بالتبديل إلى x64 باستخدام البرنامج النصي ADSUTIL.VBS أعلاه (اضبطه على 0 بدلاً من 1).

نصائح أخرى

ما أفهمه هو أنه كان هناك حد لمساحة العنوان الظاهري يبلغ 3 جيجابايت في ASP.NET 1.1، وأنه لم يكن متوافقًا مع 64 بت مطلقًا، على الرغم من أن الإصدار 2.0 كان كذلك.

يمكنك الحصول على IIS 6.0 لتشغيل 32 بت (أي.ASP.NET 1.1) على نظام التشغيل 64، ولكنه سيكون في وضع 32 بت (جنبًا إلى جنب مع أي شيء آخر مستضاف، بما في ذلك مواقع ASP.NET 2.0).

مقالة Microsoft حول التبديل بين 32 بت و64 بت

الحد الأقصى للذاكرة هو 2 غيغابايت ما لم تستخدم رمز التبديل /3 غيغابايت في العملية التي ستستخدم 1 غيغابايت من مساحة kernel للعملية نفسها.الطريقة الوحيدة لتجاوز 3 غيغابايت مع IIS هي تشغيل الإصدار 64 بت.

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