2011-05-19 12 views
20

मेरे पास मेरे स्थापित टेम्पलेट्स के अंदर किसी और के पीछे ग्लोबल एप्लिकेशन क्लास कोड नहीं है। मेरे पास ग्लोबल.एक्सएक्स है। मुझे Global.asax.cs के साथ काम करने में अधिक आरामदायक लगता है।विजुअल स्टूडियो 2010 में global.asax.cs कहां है

  1. मैं इसे और क्यों नहीं देख रहा हूं?
  2. Global.asax.cs को फिर से बनाने के लिए कैसे करें?

उत्तर

31

ऐसा इसलिए है क्योंकि आपने वेब एप्लिकेशन के बजाय एक वेब साइट बनाई है। मैं एक precomipled वेब अनुप्रयोग मॉडल का उपयोग कर आप की सिफारिश करेंगे, लेकिन आप निम्न कर सकता है आप एक वेब साइट का उपयोग करने की आवश्यकता है:

~/Global.asax:

<%@ Application CodeFile="Global.asax.cs" Inherits="AppName.MyApplication" Language="C#" %> 

~/Global.asax.cs:

namespace AppName 
{ 
    public partial class MyApplication : System.Web.HttpApplication 
    { 
     protected void Application_Start() 
     { 
     } 
    } 
} 

अब फिर से खोलना अपने वीएस में साइट

+1

+1 दिलचस्प। वह व्यवहार क्यों सेट है? – naveen

+2

@naveen, यह वेबसाइट बनाम वेब अनुप्रयोग मॉडल के बीच अंतरों में से एक है। –

+0

कोई ज़रूरत नहीं है। धन्यवाद। मैं उत्सुक था कि यह डिजाइन द्वारा मौजूद क्यों नहीं था जब एएसपीनेट कोड-बैक मॉडल में विश्वास करता है। प्लस मैंने पाया कि नामस्थान शॉर्टकट आयात भी वहां काम नहीं करेगा। Thats क्यों मैंने सवाल पूछा। – naveen

5

हां @ डारिन का उत्तर सही है, सीएस/वीबी फ़ाइल वेब एप्लिकेशन में देखी जा सकती है लेकिन वेबसाइट में आपके पास एक अलग सीएस/वीबी फ़ाइल नहीं हो सकती है।

Global.asax एक सीएस फ़ाइल नहीं है, लेकिन आप कोड लिख सकते हैं ....

<script runat="server"> 

void Application_Start(object sender, EventArgs e) 
{ 
    // Code that runs on application startup 
} 

</script> 
+0

+ 1 हाँ वह हम जानते है। मैं सोच रहा था कि क्यों सीएनआरआरएल + सी नहीं। नामस्थान आयात करने के लिए काम नहीं किया। :) – naveen

-1

वे दोनों फ़ाइलें समान हैं "Global.asax" वेबसाइट और "Global.asax से संबंधित है। सीएस "वेब अनुप्रयोग से संबंधित है। कोडिंग मानकों में से दोनों में

3

असल में वीएस 2010 मानक वेबसाइट में, ग्लोबल.एक्सएक्स के लिए डिज़ाइन द्वारा फ़ाइल के पीछे एक कोड मौजूद नहीं है। इसलिए क्या करना है? आपको इस तरह के इनलाइन कोड मॉडल का उपयोग करना होगा।

<%@ Application Language="C#" %> 

<%@ Import Namespace="System.Web.Routing" %> 

<script Language="C#" RunAt="server"> 

    void Application_Start(object sender, EventArgs e) 
    { 
    } 

    void Application_End(object sender, EventArgs e) 
    { 
    } 

    void Application_Error(object sender, EventArgs e) 
    { 
    } 

    void Session_Start(object sender, EventArgs e) 
    { 
    } 

    void Session_End(object sender, EventArgs e) 
    { 
    } 
</script> 
+0

यह सच नहीं है। आपको केवल ग्लोबल.एक्सएक्स फ़ाइल में 'इनहेरिट्स = "ग्लोबल" 'और' कोडबहाइंड =" पथ/से/ग्लोबल सीएस "विशेषताएं जोड़ने की आवश्यकता है। –

+0

क्या आपने कोशिश की है, यदि नहीं तो बस एक मानक वेबसाइट प्रोजेक्ट बनाएं लेकिन वेब एप्लिकेशन नहीं ... –

+0

हां, मैंने कोशिश की है। आप वेब साइट और वेब अनुप्रयोग परियोजनाओं में Global.asax के लिए कोडबेंड फ़ाइल कर सकते हैं। –

-1

आप के बाद से जब आप नए वेब अनुप्रयोग या वेबसाइट बनाने के लिए एक नया glabal पुस्तकालय वर्ग बनाने की जरूरत नहीं है, आपके आवेदन ही पहले से ही एक आइटम अपने समाधान एक्सप्लोरर में नामित global.asax.cs होगा।

2

Ctrl + Shift + A और सूची

+0

यह global.asax है, global.asax.cs नहीं। –

0

से वैश्विक आवेदन वर्ग को जोड़ने के प्रस्तावना

मैं काफी डैरिन का जवाब नहीं समझ सकता है के रूप में वह वैश्विक के नामकरण के साथ मानकों के नहीं रखा है कक्षा, सभी उचित सम्मान के साथ। मुझे 2010 में वीएस2005 के लिए एक समाधान की आवश्यकता नहीं थी, लेकिन मुझे यकीन है कि यह समाधान कभी भी कम काम नहीं करेगा।

asp.net 2,0

किसी भी वर्तमान Global.asax और Global.cs फाइल या इसे ठीक करने के प्रयास को हटाएँ में Global.asax फ़ाइल के लिए codebehind जोड़ा जा रहा है।

ठीक है, एक बार चला गया, अपनी परियोजना के रूट फ़ोल्डर पर जाएं, राइट-क्लिक करें और नया आइटम जोड़ें चुनें ...

वैश्विक कक्षा चयन करें और ठीक

अब वापस रूट फ़ोल्डर के लिए फिर से जाना क्लिक करें, राइट क्लिक करें और एक नया वर्ग

नाम इस वर्ग चुनें - Global.cs

और हाँ - इसे app_code फ़ोल्डर के अंदर सहेजने की अनुमति दें। नहीं कहें, और रूट फ़ोल्डर में इसे रखने की अनुमति दें। यह एप_code फ़ोल्डर में में होना चाहिए।

ग्लोबल.एक्सएक्स फ़ाइल संपादित करें और <script> टैग के अंदर कोड काट लें (कट/पेस्ट करें)। फ़ाइल इस तरह दिखना चाहिए, और विरासत में मिली टैग को जोड़ने ..

<%@ Application Language="C#" Inherits="Global" %> 

<script runat="server"> 
    //do not put any code here 
</script> 

app_code में global.cs फ़ाइल में जाओ और कोड आप Global.asax फ़ाइल से बाहर काट पेस्ट करें।

app_code में global.cs फ़ाइल अब इस तरह दिखना चाहिए ...

/// <summary> 
/// Summary description for Global 
/// </summary> 

public class Global : System.Web.HttpApplication 

{ 

     public Global() 

     { 

       // 

       // TODO: Add constructor logic here 

       // 

     } 



    void Application_Start(object sender, EventArgs e) 

    { 

     // Code that runs on application startup 



    } 



    void Application_End(object sender, EventArgs e) 

    { 

     // Code that runs on application shutdown 



    } 



    void Application_Error(object sender, EventArgs e) 

    { 

     // Code that runs when an unhandled error occurs 



    } 



    void Session_Start(object sender, EventArgs e) 

    { 

     // Code that runs when a new session is started 



    } 



    void Session_End(object sender, EventArgs e) 

    { 

     // Code that runs when a session ends. 

     // Note: The Session_End event is raised only when the sessionstate mode 

     // is set to InProc in the Web.config file. If session mode is set to StateServer 

     // or SQLServer, the event is not raised. 



    } 

} 

अब हम Global.asax फ़ाइल और कोड एक वर्ग के नाम के साथ फ़ाइल Global.asax.cs के पीछे है। ऐसा करके हम आगे बढ़ सकते हैं और किसी भी स्थान पर स्थिर चर का उपयोग कर सकते हैं।

संबंधित मुद्दे