خطأ "ملف غامض غير موجود" (في الكود غير ذي صلة بأي نوع من الملفات IO) في Global.asax

StackOverflow https://stackoverflow.com/questions/3929322

سؤال

أحصل على خطأ "ملف غير موجود". في تطبيق ASP.NET الخاص بي. هذا غريب ، رغم ذلك.

أولاً ، لا يوجد ملف IO في أي مكان - لا أفعل أي شيء مع أي ملفات عند حدوثه.

أيضًا ، يحدث ذلك في آخر دعامة مجعد للختام لطريقة application_error () في Global.asax (هذا هو الذي تضعه في الكود للتعامل مع الاستثناءات غير المعلنة). هذا صحيح: لا يحدث في بيان رمي ، أو أي سطر من الكود ذي معنى ، ولكن الحق في آخر دعامة مجعد.

الهدف هو:

{system.io.fileinfo getFileInfo (System.String ، System.String ، System.Web.httpresponse)}

الذي يبدو لي وكأنه شيء داخلي لـ ASP.NET (لا توجد طريقة getFileInfo () في حلي).

stacktrace فقط:

في asp.global_asax.application_error (مرسل الكائن ، eventargs e) في c: subversion confapp website global.asax: السطر 36 في system.eventHandler.invoke ()

التي لا يمكنني استنباط أي أدلة.

تفاصيل أخرى:

  • أنا في منتصف محاولة حل النزاعات بين JQuery 1.4 (و jQuery UI) و MS ASP.NET AJAX 4 في هذا التطبيق في الوقت الحالي

  • لقد بدأت بعد ترقية التطبيق من .NET 2.0 إلى .NET 4 و Visual Studio 2010.

أي فكرة كيف يمكنني أن أبدأ في النظر في هذا؟

تحديث:
بعد فترة وجيزة من نشر هذا ، قمت بإزالة وإعادة إضافة jQuery UI (بما في ذلك .js ، .css والصور). حتى الآن ، يبدو أن هذا قد إصلاحه. لست متأكدًا من كيفية تسبب مكتبة JS من جانب العميل إلى خطأ في Global.asax. سيضيف هذا كإجابة ، على الرغم من ذلك ، إذا لم يظهر الخطأ مرة أخرى قريبًا ...

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

المحلول 2

بعد يوم ، ويبدو أن المشكلة قد اختفت.

لقد قمت بإزالة وإعادة إضافة jQuery UI (بما في ذلك .js ، .css والصور). حتى الآن ، يبدو أن هذا قد إصلاحه. غريب جدا.

نصائح أخرى

ضمن طريقة Applicationerror ، تحقق من request.currentExecutionFilePath. يجب أن يشير CurrentExecutionFilePath إلى الملف المطلوب.

ساعدني التحقق من هذه الخاصية في تحديد أن Chrome يطلب تلقائيًا "/favicon.ico." إذا لم يكن هناك Favicon ، فستحصل على "ملف غير موجود" ، حتى يعتقد أن الصفحة يتم تحميلها على ما يرام. راجع للشغل ، أي و FF لا تتصرف بهذه الطريقة.

باستخدام اقتراح بيري لفحص Request.CurrentExecutionFilePath في Application_Error, ، وجدت أن تطبيق ASP.NET الخاص بي لم يتمكن من العثور على ملفات jQuery في المجلدات المسبقة مع "~/" في ال <script> بطاقة شعار.

كنت أفعل هذا في علامة Masterpage الخاصة بي:

<script src="~/Scripts/jquery-1.4.1.js" type="text/javascript">

عندما كان يجب أن أفعل هذا:

<script src="Scripts/jquery-1.4.1.js" type="text/javascript">
مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top