يتم اعتراض JS ، الصور و CSS بواسطة httpmodule
-
22-09-2019 - |
سؤال
لديّ 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/
نصائح أخرى
نعم ، سيتم استدعاؤه لأي نوع من الملفات.
إنه أمر نموذجي في تلك الوحدات النمطية لتصفية كل ما لا تهتم به. عن طريق التحقق مما إذا كان httpcontext.request.url.absolutepath يحتوي على '/_layouts' تحت SharePoint.