سؤال

أنا أعمل قليلاً من اللعب مع IIS7 ، فقط أحاول التقاط الأحداث يدويًا في Global.asax وتخطي خط أنابيب ASP Httphandler بالكامل. تحقيقا لهذه الغاية ، لقد ضبطت

<httpHandlers>
    <clear/>
</httpHandlers>
<httpModules>
    <clear/>
</httpModules>   

لكن عندما أتصل بالخادم أحصل على ysod

[HttpException]: No http handler was found for request type 'GET'
   at System.Web.HttpApplication.MapHttpHandler(HttpContext context, String requestType, VirtualPath path, String pathTranslated, Boolean useAppConfig)
   at System.Web.HttpApplication.MapHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
   at System.Web.HttpApplication.ExecuteStep(IExecutionStep step, Boolean& completedSynchronously)

ما الذي يجب علي فعله لمنع IIS تمامًا من التعامل مع الأشياء باستخدام خط الأنابيب التقليدي؟ ما أريده هو فقط القيام بالاستجابة. الكتابة في معالجات الأحداث وأساليب ASYNC التي تم إعدادها في httpapplication.init

تحرير: سؤالي كان OB. غير واضح بعض الشيء (آسف لأي شخص يضيع وقته) - كان ينبغي أن أوضح أفضل لأن ما أحاول فعله غير تقليدي. أحاول معرفة ما إذا كان بإمكاني استخدام IIS للتعامل مع طلبات الويب بطريقة مشابهة لـ Node.js - عن طريق معالجات الأسلاك حتى أساليب Async في httpapplication. تحقيقًا لهذه الغاية ، أحتاج إلى ASP للتوقف عن رمي متذبذب لأنني لا أريد استخدام httphandlers. حاليًا أفضل رهان لي هو استخدام NullHttphandler لجميع الطلبات ، لكنني أتساءل عما إذا كان بإمكاني تعطيل نظام Httphandler تمامًا. افكارك!

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

المحلول

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

نصائح أخرى

عليك إعادة إضافة staticfilehandler:

  <httpHandlers>
    <clear />
    <add verb="*" path="*.jpg" type="System.Web.StaticFileHandler" />
  </httpHandlers>

أعلم أنها قديمة بعض الشيء ... ولكن إذا كنت في أيك. BeginRequest حدث HttpApplication تعيين معالج ل HttpContext.Current.Handler يجب ألا تحصل على هذا الخطأ ويمكن أن تترك قسم المعالجات في Web.Config فارغة.

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