سؤال

لقد صنعت معالجًا مخصصًا مستمدًا من Mvchandler. لديّ طريقاتي باستخدام جهاز routeHandler المخصص الذي يعيد معالجتي الجديدة لـ Gethttphandler () ، وأتخطى ProcessRequest () في معالجتي المخصصة. إن الدعوة إلى Gethttphandler تثير نقطة توقف ، كما يتم استدعاء مُنشئ معالجتي ، ولكن يتم استدعاء BeginProcessRequest () على Mvchandler الأساسي بدلاً من ProcessRequest ().

لماذا يتم استدعاء أساليب ASYNC عندما لم أفعل أي شيء للاتصال بهم؟ لا أريد التعامل غير المتزامن ، وبالتأكيد لم أفعل أي شيء واضح للحصول عليه. جميع وحدات التحكم الخاصة بي تستمد من وحدة التحكم ، وليس غير متزامن.

ليس لدي رمز المصدر معي الآن ، لكن يمكنني إضافته لاحقًا إذا لزم الأمر. كنت آمل أن يعرف شخص ما بعض الأسباب التي تجعل stalkprocessRequest قد يتم استدعاؤها عندما لا يكون ذلك مطلوبًا.

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

المحلول

ورد براد ويلسون لمشاركتي على منتديات ASP.NET مع الإجابة التالية http://forums.asp.net/t/1547898.aspx:

إجابة قصيرة: نعم.

مع إضافة ANSYNCCONTROLLER ، يجب أن تكون فئة MVCHANDLER الآن عبارة عن IHTTPASYNCHANDLER ، مما يعني أنه فيما يتعلق بوقت التشغيل الأساسي ASP.NET ، فإن نقاط الدخول الآن هي BEGINProcessRequest و EndProcessRequest ، وليس ProcessRequest.

يبدو أن ProcessRequest لم يعد يسمى بعد الآن ، لكن قد أكون مخطئًا. أستطيع أن أقول إنني لم أرها في اختباري.

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