سؤال

لديّ httpmodule بسيطة تقوم ببعض إدارة حالة الجلسة المخصصة.

public void Init(HttpApplication context)
        {
            context.AcquireRequestState += new EventHandler(ProcessBeginRequest);
            ActivityLogger.LogInfo( DateTime.UtcNow.ToLongTimeString() + " In Init " + HttpContext.Current.Request.Url.AbsoluteUri);
        }

و

public void ProcessBeginRequest(object sender, EventArgs e)
        {
            HttpApplication application = sender as HttpApplication;
            ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest ");
            if (application != null)
            {
                string requestURL = application.Context.Request.Url.ToString();
                ActivityLogger.LogInfo(DateTime.UtcNow.ToLongTimeString() + " In ProcessBeginRequest " + requestURL);
            }
            return;
        }

عندما قمت بتشغيل هذا الرمز بنقاط التوقف ، رأيت أن هذه الوحدة قد تم استدعاؤها حتى بالنسبة للملفات الثابتة مثل الصور و JS و CSS. وقد شهدت أي شخص هذا ؟ أفكر في أن وحدات HTTP كانت فقط تربط بالأحداث في خط أنابيب HTTP للحصول على صفحات ASP.NET. هل يتواصلون أيضًا مع الموارد الثابتة؟ أم أنها فقط مع كاسيني؟

البيئة: VS2008 - خادم كاسيني

ملاحظة: لقد جربته مع Win2K8 IIS7 في صندوق الرمل الخاص بنا (نوعًا ما) ، وحاولت كتابته إلى ملف سجل (كما لا يوجد لدينا مقابل هناك) ، لكن لم نتمكن من الكتابة إلى ملف السجل. أنا متأكد من أن بعض أذونات الكتابة. هل يمكن لأي شخص أن يوجهني إلى بعض الموارد التي تخبرني بكيفية تعيين أذونات الكتابة للأدلة عند تشغيل ASP.NET مع IIS7 في W2K8

EDIT1: أفهم أن استخدام خط أنابيب متكامل سيؤدي إلى تمديد خطوط أنابيب HTTP للموارد الثابتة والمدارة على حد سواءhttp://aspnet.4guysfromrolla.com/articles/122408-1.aspx و http://learn.iis.net/page.aspx/243/aspnet-integration-with-iis7/

نحن نستخدم خط الأنابيب الكلاسيكي في Prod لدينا. ولكن لا يزال مهتمًا بمعرفة ما عاشه الآخرون.

Question2: استخدام IIS7 في الوضع المتكامل ، هل سيقلل الأداء؟ لنفترض أن لديك وحدات تربط بين خط الأنابيب ، ما مدى تأثير الأداء؟ سيكون من الرائع أن يوجهني أحدهم إلى بعض الدراسات الأساسية التي أجريت لهذا الغرض.

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

المحلول

يبدو أن هناك طريقة للقيام بذلك

http://learn.iis.net/page.aspx/121/iis-70-modules-overview/#disabling

إعداد preCondition="managedHandler" و <modules runAllManagedModulesForAllRequests="false" /> سيفعل الخدعة

ملاحظة في تقرير المصير:http://code.google.com/p/talifun-web/wiki/staticfilehandlerتحتاج إلى استكشاف هذا staticfilehandler

المراجع:

http://learn.iis.net/page.aspx/244/how-to-take-advantage-of-the-iis7-integrated-pipeline/

استبعاد httpmodule من التشغيل لمحتوى ثابت على IIS7

علة: طلبات IIS7 المدارة

http://msdn.microsoft.com/en-us/library/bya7fh0a.aspx

نصائح أخرى

نعم ، سيتم استدعاؤه لأي نوع من الملفات.

إنه أمر نموذجي في تلك الوحدات النمطية لتصفية كل ما لا تهتم به. عن طريق التحقق مما إذا كان httpcontext.request.url.absolutepath يحتوي على '/_layouts' تحت SharePoint.

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