ASP.NET 2.0 - app_offline.htm का उपयोग कैसे करें


120

मैंने उस app_offline.htmफ़ाइल के बारे में पढ़ा है जिसे .NET 2.0 एप्लिकेशन के मूल में रखा जा सकता है, जो सार में एप्लिकेशन को बंद कर देगा और अनुरोध किए जाने पर किसी भी अन्य पेज को अक्षम कर देगा।

मैंने फ़ाइल को रूट में रखा है, और मेरी साइट अभी भी लोड होती है। मैं IIS में डिफ़ॉल्ट दस्तावेजों में चला गया और इसे app_offline.htmअभी भी लोड कर रहा हूं और साइट अभी भी लोड हो रही है (हालांकि यह कैशिंग मुद्दा हो सकता है)

वैसे भी, किसी को भी इस का उपयोग कर मुद्दों में चला गया है? क्या मुझसे कुछ गलत हो रही है?


क्या कोई Microsoft पृष्ठ है जो यह दस्तावेज़ करता है?
Coops


आधिकारिक दस्तावेज़ीकरण: msdn.microsoft.com/en-us/library/ff925031.aspx
ब्रायन

मैंने अपनी वेब ऐप सामग्री को छिपाने और अस्थायी पृष्ठ प्रदर्शित करने के लिए app_offline.htm का सफलतापूर्वक उपयोग किया है। हालाँकि मुझे app_offline.htm फ़ाइल हटाने के बाद भी मूल डेटा की समीक्षा करने में समस्या हो रही है। उसका मेरा सवाल: stackoverflow.com/questions/42979042/…
naz786

जवाबों:


160

मैंने अतीत में किसी भी मुद्दे के बिना साइटों को बंद / अपडेट करने के लिए बेहद आसान ऐप_ऑफलाइन.एचटीएम ट्रिक का इस्तेमाल किया है।

सुनिश्चित करें कि आप वास्तव में IIS के भीतर कॉन्फ़िगर की गई वेबसाइट के "रूट" में "app_offline.htm" फाइल रख रहे हैं।

यह भी सुनिश्चित करें कि फ़ाइल का नाम ठीक वैसा ही हो जैसा कि होना चाहिए: app_offline.htm

इसके अलावा, IIS में कोई अन्य परिवर्तन नहीं होने चाहिए जो आपको इस फ़ाइल के प्रसंस्करण के बाद से करने की आवश्यकता होनी चाहिए (इस विशिष्ट नाम के साथ) IIS के बजाय ASP.NET रनटाइम द्वारा नियंत्रित किया जाता है (IIS v6 के लिए)।

हालाँकि, ध्यान रखें, हालाँकि इस फ़ाइल को आपकी साइट के रूट में रखने से एप्लिकेशन को "शट डाउन" करने के लिए मजबूर होना पड़ेगा और "app_offline.htm" फ़ाइल की सामग्री को स्वयं प्रदर्शित करना होगा , फिर भी कोई भी मौजूदा अनुरोध असली वेबसाइट पर पहुंच जाएगा। उनको। केवल नए अनुरोधों में app_offline.htm सामग्री मिलेगी।

यदि आप अभी भी समस्याएँ हैं, तो आगे की जानकारी के लिए निम्न लिंक आज़माएँ:

स्कॉट गु की App_Offline.htm

App_Offline.htm और "IE फ्रेंडली एरर्स" फीचर के आसपास काम करना

क्या app_offline.htm वर्तमान अनुरोधों या केवल नए अनुरोधों को रोक देगा?


6
@JackM - कोई बात नहीं! वास्तव में, मैं अक्सर अपनी वेबसाइट पर फ़ाइल छोड़ता हूं और इसे "xapp_offline.htm" की तरह कहता हूं। इसलिए यह वहाँ कुछ भी नहीं बैठता है। जब मैं कुछ या सभी साइट को अपग्रेड करना चाहता हूं, तो मैं बस फ़ाइल का नाम बदल देता हूं और "x" उपसर्ग को हटा देता हूं (यह आमतौर पर एफ़टीपी पर किया जाता है)। यह मेरे लिए साइट को बंद कर देता है, मैं अपग्रेड करता हूं, फिर फ़ाइल को "x" उपसर्ग के साथ फिर से नाम देता हूं!
क्रेगटीपी

@JackMarchetti - क्या यह ASP.NET MVC वेबसाइटों के लिए भी काम करेगा, जो Global.asax रूटिंग का उपयोग करती हैं? मैंने यहाँ सभी सुझावों की जाँच की है, लेकिन अभी भी काम करने के लिए इसे प्राप्त करने का कोई सौभाग्य नहीं है :(
मैरिड

पिछली टिप्पणी के लिए अपडेट करें: यह अब काम कर रहा है और किसी तरह का कैशिंग मुद्दा रहा होगा। मैं <CTRL> + रीफ़्रेश करता था, लेकिन संभवतः इसे कहीं और कैश किया जा रहा था।
स्क्विग

क्या कोई Microsoft पृष्ठ है जो यह दस्तावेज़ करता है?
Coops

1
@CodeBlend खैर, स्कॉटगू के ब्लॉग का लिंक काफी आधिकारिक है, लेकिन मुझे लगता है कि सबसे "आधिकारिक" Microsoft पृष्ठ MSDN पर यह एक होगा: msdn.microsoft.com/en-us/library/vstudio
CraigTP

47

सुनिश्चित करें कि आपकी app_offline.htm फ़ाइल कम से कम 512 बाइट्स लंबी है। एक शून्य-बाइट app_offline.htm का कोई प्रभाव नहीं होगा।

अद्यतन: ASP.NET/IIS के नए संस्करण, जब मैंने पहली बार लिखा था, तो इससे बेहतर व्यवहार कर सकता है।

अद्यतन 2: यदि आप ASP.NET MVC का उपयोग कर रहे हैं, तो web.config में निम्नलिखित जोड़ें:

<?xml version="1.0"?>
<configuration>
    <system.webServer>
        <modules runAllManagedModulesForAllRequests="true" />
    </system.webServer>
</configuration>

1
मेरे पास एक खाली फ़ाइल के साथ सटीक फ़ाइल नाम था और वह काम किया था - रिक्त पृष्ठ जो कि मेरे द्वारा उपयोग किए गए url की परवाह किए बिना प्रदर्शित किया गया था
Coops

512 बाइट सीमा के मुद्दे के लिए इस लिंक की जाँच करें: codeproject.com/Articles/21319/…
मसूद खारी

यह विशेष रूप से IE के पुराने संस्करणों के लिए सच है जो पृष्ठ को स्वयं त्रुटि संदेश के साथ बदल सकता है
ChewToy

स्कॉट गु अपने ब्लॉग
मैट

2
मैं केवल अपने MVC साइट को पूरी तरह से अपने web.config को पूरी तरह से बदलकर ऐप ऑफ़लाइन मोड में जा सकता हूं
मैथ्यू लॉक

14

ध्यान दें कि यह IIS 6 और 7.x, और .NET 2, 3 और 4.x पर समान व्यवहार करता है।

यह भी ध्यान दें कि जब app_offline.htm मौजूद है, तो IIS इस http स्थिति कोड को वापस कर देगा:

HTTP/1.1 503 Service Unavailable

यह सब डिज़ाइन द्वारा है। यह आपके लोड बैलेंसर (या जो भी) को देखने की अनुमति देता है कि सर्वर ऑफ लाइन है।


1
निश्चित रूप से आप अपने लोड बैलेंसर को यह नहीं सोचना चाहते कि सर्वर ऑफ़लाइन है, क्योंकि आप app_offline.htmअपने रखरखाव विंडो के दौरान उपयोगकर्ताओं को प्रदर्शित करना चाहते हैं?
ल्यूक

2
@ ल्यूक: 503 प्रतिक्रिया क्यों उपयोगी है इसका एक बेहतर उदाहरण: यह बेहतर है कि Google का वेब क्रॉलर जानता है कि आपकी वेबसाइट वर्तमान में नीचे है, बजाय इसके कि आपकी "साइट डाउन है" सामग्री को इंडेक्स करने का निर्णय लिया गया है (और आपकी साइट को डुप्लिकेट का एक टन होने के रूप में चिह्नित किया गया है सामग्री)। इसके अलावा, यह मददगार हो सकता है यदि आपका CDN यह पता लगा सकता है कि आपकी उत्पत्ति कम है और इस प्रकार आपकी सामग्री को कैशिंग करने से बच जाएगा।
ब्रायन

10

संभव अनुमति जारी करना

मुझे पता है कि यह पोस्ट काफी पुरानी है, लेकिन मैं इसी तरह के मुद्दे पर भाग गया और मेरी फाइल को सही तरीके से लिखा गया।

मैंने मूल रूप से एक अन्य स्थान में app_offline.htm फ़ाइल बनाई और फिर इसे अपने आवेदन की जड़ में स्थानांतरित कर दिया। मेरे सेटअप की वजह से मेरे पास एक अनुमति समस्या थी।

वेबसाइट ने ऐसा काम किया जैसे कि वह वहां नहीं था। फ़ाइल को रूट डाइरेक्टरी के अंदर ले जाने के बजाय, मेरी समस्या को हल किया। (या आप केवल संपत्तियों में अनुमति को ठीक कर सकते हैं-> सुरक्षा)

आशा है कि यह किसी की मदद करता है।


4

यह सुनिश्चित करें कि app_offline.htmIIS में वर्चुअल निर्देशिका या वेबसाइट की जड़ में है।


यह निश्चित रूप से जड़ में है। मेरे पास मेरा inetput \ wwwroot है [WebsiteDirectory] \ app_offline.htm
जैक

3

सुनिश्चित करें कि फ़ाइल नाम एक्सटेंशन एक्सप्लोरर में दिखाई दे रहे हैं और फ़ाइल नाम वास्तव में है

app_offline.htm

नहीं

app_offline.htm.htm


0

मैं मूल प्रश्न के समान एक मुद्दे पर भाग गया, जिसे हल करने में मुझे थोड़ा समय लगा।

बस किसी और को लगाओ जो MVC एप्लिकेशन पर काम कर रहा है और इस धागे में अपना रास्ता ढूंढता है, सुनिश्चित करें कि आपके पास उपयुक्त .Net aspnet_isapi.dll परिभाषित करने के लिए एक वाइल्डकार्ड मैपिंग है। जैसे ही मैंने ऐसा किया, मेरा app_offline.htm उम्मीद के मुताबिक व्यवहार करने लगा।


IIS 6 कॉन्फ़िगरेशन चरण

IIS अनुप्रयोग गुण पर, वर्चुअल निर्देशिका टैब का चयन करें।

एप्लिकेशन सेटिंग्स के तहत, कॉन्फ़िगरेशन बटन पर क्लिक करें।

वाइल्डकार्ड एप्लिकेशन मैप्स के अंतर्गत, सम्मिलित करें बटन पर क्लिक करें।

C: \ WINDOWS \ Microsoft.NET \ Framework64 \ v4.0.30319 \ aspnet_isapi.dll दर्ज करें, ठीक पर क्लिक करें।

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.