لماذا يستمر App_offline.htm في الظهور في مشروع الويب الخاص بي؟

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

سؤال

أقوم بانتظام (كل بضعة أيام أو نحو ذلك) بنشر مشروع الويب الخاص بـ ASP.NET على خادم الويب المحلي.

لكن أغرب شيء يستمر في الحدوث ... يستمر ملف يسمى "App_offline.htm" في الظهور ، غير محظور ، في مشروع الويب الخاص بي!

لقد قمت بحذف هذا الملف عدة مرات ، إنه ليس في التحكم في المصدر ، ولم يكن هناك أي شخص آخر يعبث بالمشروع. لكن من الناحية العملية في كل مرة أحاول نشر المشروع ، فشل نشرتي (Unable to add 'app_offline.htm' to the Web site. The file 'app_offline.htm' already exists in this Web site.Error: The operation could not be completed. Unspecified error) ، أعود للنظر إلى المشروع ، وهناك مرة أخرى ، كبيرة مثل الحياة ، وأظن أنه ما إذا كان يمكن أن تهب فيي التوت. : ص

بعد قراءة القليل عن هذا الملف ، أجمع أنه من المفترض أن يكون طريقة سهلة لأخذ تطبيقك في وضع عدم الاتصال. لكنني لم أر أي مكان يفترض أن تفرضه عليك بشكل تعسفي دون سبب وجيه.

لذلك ، أين هذا *و^٪ $#@٪ !! ملف قادم من ، ولماذا يعتقد VS أنني بحاجة إليه؟

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

المحلول

هذه هي .NET 2.0 "ميزة"

http://weblogs.asp.net/scottgu/archive/2005/10/06/426755.aspx

http://www.codeproject.com/kb/aspnet/app_offline.aspx

"أسهل طريقة للتغلب على ذلك هي عدم النشر مباشرة إلى الخادم الخاص بك. لا يجب عليك أي على أي حال ... النشر إلى مجلد محلي ثم نسخ الموقع"

هل تستخدم Visual Studio؟ http://connect.microsoft.com/visualstudio/feedback/viewfeedback.aspx؟feedbackid=102778

نصائح أخرى

بشكل افتراضي ، تضع عملية النشر واحدة في دليل وجهتك ولكن بعد ذلك تحذفها عند الانتهاء من عملية النشر. ربما يتم منعه من حذفه عندما يحاول ذلك؟

هنا مقتطف من مقالة MSDN هنا:

قبل نسخ ملفات التطبيق ، تضع أداة نسخ موقع الويب ملفًا يسمى app_offline.htm في الدليل الجذر لموقع الويب الهدف. بينما يوجد ملف app_offline.htm ، يتم إعادة توجيه أي طلبات إلى موقع الويب إلى هذا الملف. يعرض الملف رسالة ودية تخبر العملاء أنه يتم تحديث موقع الويب. عندما يتم نسخ جميع ملفات موقع الويب ، تقوم أداة موقع Web Copy بحذف ملف app_offline.htm من موقع الويب الهدف.

أعتقد أنه لسبب ما ، هناك حدثان نشران يتعارضان مع بعضهما البعض بطريقة ما؟

الطريقة التي أتجول بها هذا هي استخدام NANT لإنشاء الحل الخاص بي ثم نسخ الأشياء التي أريدها فقط. أقوم بالفعل بنسخ ملف app_offline أولاً ، باستخدام الميزة ، ولكن بعد ذلك أدير عندما يتم نسخه وحذفه.

إذا كانت قاعدة البيانات لا تدعم عمليات متعددة (Exp. SQL Server 2005 Express Edition أو Access). يمكن لعملية واحدة فقط الوصول إلى قاعدة البيانات في وقت واحد. لذلك عندما يتم الوصول إلى قاعدة بيانات من خلال Visual Studio ، لا يمكن لـ ASP.NET Runtime الوصول إلى قاعدة البيانات. سيؤدي هذا إلى خطأ الخادم الداخلي. لمنع ذلك ، يضع VS 2005 ملف app_offline.htm في دليل الجذر للتطبيق. يحتوي الملف على الرسالة أعلاه. هذا يتسبب في وضع ASP.NET للتطبيق في وضع عدم الاتصال. يرجى ملاحظة أن قاعدة بيانات الوصول تعني فتح أي مكون من قاعدة البيانات (أي جدول ، عرض ، الإجراء المخزن وما إلى ذلك) في نافذة التصميم. عند إغلاق نافذة التصميم ، يقوم VS 2005 أو VS 2008 بإزالة ملف App_offline.htm الذي يجعل التطبيق في وضع Onliner مرة أخرى.

وجدت هنا ...

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