2014-09-04 6 views
7

मैं अपने आवेदन के माध्यम से एप्लिकेशन पूल रीसायकल करना चाहता हूं।कोड के माध्यम से एप्लिकेशन पूल नाम कैसे प्राप्त करें (सी #, एएसपीनेट)

पहले मैं अपने डेटाबेस में एप्लिकेशन पूल नाम संग्रहीत कर रहा था और इसका उपयोग रीसायकल करने के लिए कर रहा था। लेकिन यह अतीत में हुआ कि हमने एक ऐप पूल से दूसरे में ऐप्स ले जाया और कभी-कभी हम डेटाबेस में ऐप पूल नाम अपडेट करना भूल जाते हैं।

तो मैं एप्लिकेशन के माध्यम से ऐप पूल नाम प्राप्त करने और रीसाइक्लिंग के लिए इसका उपयोग करने के बारे में सोच रहा हूं।

+0

ऐसा कुछ? http://stackoverflow.com/questions/1400464/enumerating-plication-pools-in-iis – fuchs777

उत्तर

5

इस मदद कर सकते हैं कर सकते हैं: ApplicationPoolName संपत्ति

नाम स्थान: Microsoft.Web.Administration विधानसभा: Microsoft.Web.Administration (Microsoft.Web.Administration.dll में)

http://msdn.microsoft.com/en-us/library/microsoft.web.administration.application.applicationpoolname(v=vs.90).aspx

+3

और बस, 'इंस्टॉल-पैकेज Microsoft.Web.Administration' –

12

संशोधित @Razon उत्तर का संस्करण :)

public static string GetCurrentApplicationPoolName() 
    { 
     ServerManager manager = new ServerManager(); 
     string DefaultSiteName = System.Web.Hosting.HostingEnvironment.ApplicationHost.GetSiteName(); 
     Site defaultSite = manager.Sites[DefaultSiteName]; 
     string appVirtualPath = HttpRuntime.AppDomainAppVirtualPath; 

     string appPoolName = string.Empty; 
     foreach (Application app in defaultSite.Applications) 
     { 
      string appPath = app.Path; 
      if (appPath == appVirtualPath) 
      { 
       appPoolName = app.ApplicationPoolName; 
      } 
     } 
     return appPoolName; 
    } 
+1

IMHO, Razon उत्तर – Kiquenet

+0

से बेहतर उत्तर के साथ लिंक को संयोजित करें कोड और यह जवाब होना चाहिए। – Rexxo

+0

सावधानी: यदि आपका आईआईएस पर ऐपपूल में "लोड उपयोगकर्ता प्रोफ़ाइल" सेटिंग "सत्य" पर सेट नहीं है तो यह कोड COM अपवाद फेंक सकता है –

7

कई मामलों में यह केवल पढ़ने के लिए पर्याप्त हो सकता है पर्यावरण चर से अनुप्रयोग पूल का नाम:

var apppool = System.Environment.GetEnvironmentVariable(
        "APP_POOL_ID", EnvironmentVariableTarget.Process); 
संबंधित मुद्दे