سؤال

مرحبًا ، نقوم بتطوير تطبيق متعدد المستأجرين في ASP.NET مع قاعدة بيانات منفصلة لكل مستأجر ، حيث يكون أحد المتطلبات هو مراقبة استخدام النطاق الترددي لكل مستأجر ،

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

إذن ما هي الخيارات المتاحة ، يمكن أن تكون الخيارات التي يمكنني التفكير فيها

  1. تعني مراقبة سجل IIS تطبيقًا منفصلًا يحسب النطاق الترددي لكل مستأجر.
  2. قم بتسجيل كل طلب واستجابة للمستأجر من داخل التطبيق ثم احسب إجمالي استخدام النطاق الترددي بناءً على ذلك.
  3. استخدم مكونات الجزء الثالث إذا كان ذلك متاحًا

إذن ما رأيك سيكون أفضل طريقة ، وأيضًا إذا كان هناك أي طريقة أخرى للقيام بذلك.

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

المحلول

حسنًا ، هذه فكرة (لم أختبرها ، اتركها لك)

تشغيل Global.asax استخدم واحدة من هذه الوظيفة (ابحث عن تلك التي لها حجم نهائي صحيح)

Application_PostRequestHandlerExecute
Application_ReleaseRequestState

واحصل على الحجم الذي ترسله

Response.Filter.Length

لا حاجة إلى التعايش ، أن تحصل على اسم الملف للمكالمة باستخدام

HttpContext.Current.Request.Path

هذه الوظائف التي تسمى مع كل طلب واحد ، حتى تتمكن من الحصول على حجمك وتقوم بالباقي.

يجب أن تلاحظ هنا أنك تحتاج أولاً إلى اختبار هذه الفكرة لمعرفة ما إذا كان عملها ، وربما يحسنها ، وربما يكون ذلك إذا كان لديك ضغط الصفحات على الخادم ، فالطول ليس صحيحًا وربما تحتاج إلى ضغطها Global.asax للحصول على lenght في الواقع.

نأمل أن تكون هذه المساعدة.

نصائح أخرى

حسنًا ، نظرًا لأن سجلات IIS تحتوي بالفعل على حجم الطلب وحجم الاستجابة ، فلا يبدو أن الكثير من المتاعب لتطوير أداة صغيرة لتحليلها وحساب إجمالي يوميًا/أسبوع/شهر/أي شيء.

محاولة تقسيم حركة المرور على أساس المضيف أمر صعب في تجربتي. بدلاً من ذلك ، إذا أعطيت كل مستأجر IP (IP) للتطبيقات ، فيجب أن تكون قادرًا على العثور على برامج ستراقب النطاق الترددي بناءً على IP.

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

هيكل آخر ، والذي يبدو مثل ما قد تكون لديك ، هو أن كل مستأجر لديه موقع الويب الخاص به مثل:

tenant1_site/appvirtualdir
tenant2_site/appvirtualdir
...

أين ال appvirtualdir يشير إلى نفس المسار المادي لجميع مواقع المستأجر. عندما يكون لدى جميع العملاء نفس إصدار التطبيق ، فإنهم يستخدمون جميعًا نفس الرمز. إذا كان لديك هذا السيناريو ونوع من المصادقة ، فستحتاج إلى IP واحد لكل مستأجر على أي حال بسبب SSL. سوف يرتبط SSL فقط IP والمنفذ على عكس Non-SSL والذي سيرتبط IP و PORT والمضيف. إذا كان هذا هو الحال ، فستظل مراقبة حركة المرور على أساس IP أبسط وأكثر دقة حيث يمكن القيام بها في جهاز التوجيه أو عبر شاشة الشبكة.

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