2011-03-24 11 views
5

मैंसीआई का उपयोग कर एएसपीएक्स पेज के भीतर से आईआईएस में वेबसाइटों की सूची कैसे प्राप्त कर सकता हूं?

DirectoryEntry root = new DirectoryEntry("IIS://localhost/W3SVC/1/Root"); 
    foreach (DirectoryEntry de in root.Children) 
    { 
    } 

उपयोग करने के लिए कोशिश कर रहा हूँ, लेकिन मैं

[COMException (0x80005000): Unknown error (0x80005000)] 
    System.DirectoryServices.DirectoryEntry.Bind(Boolean throwIfFail) +557 
    System.DirectoryServices.DirectoryEntry.Bind() +44 
    System.DirectoryServices.DirectoryEntry.get_IsContainer() +42 
    System.DirectoryServices.ChildEnumerator..ctor(DirectoryEntry container) +36 
    System.DirectoryServices.DirectoryEntries.GetEnumerator() +36 
    IISVdir.List(String RootWeb) in c:\Development\Testing\App_Code\IISVdir.cs:116 
    _Default.Page_Load(Object sender, EventArgs e) in c:\Development\Testing\Default.aspx.cs:11 
    System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25 
    System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42 
    System.Web.UI.Control.OnLoad(EventArgs e) +132 
    System.Web.UI.Control.LoadRecursive() +66 
    System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428 
+0

शायद इस डुप्लिकेट एक और, आम व्याख्या है - http://stackoverflow.com/questions/3782058/using-directoryentry-to-enumerate-iis-configuration- डेटा-हो रही-comexception –

उत्तर

0

बार आ रही है मैं भी यकीन है कि क्या त्रुटि है नहीं कर रहा हूँ, लेकिन एक पर लगता है कि यह स्थापना मुद्दा या अनुमतियाँ हो सकता है।

स्थापना प्रकार समस्याओं के लिए:

http://blogs.msdn.com/b/jpsanders/archive/2009/05/13/iis-7-adsi-error-system-runtime-interopservices-comexception-0x80005000-unknown-error-0x80005000.aspx

तरह विन्यास के लिए कुछ जोड़ने अनुमतियाँ प्रकार समस्याओं के लिए:

<identity impersonate="true" userName="AdminUserName" password="password" /> 

या उपयोगकर्ता प्रसंग बदलते कि अनुप्रयोग पूल से एक है कि करने के लिए अधीन ही कार्य स्थानीय व्यवस्थापक अधिकार काम कर सकते हैं।

इसके अलावा, आईआईएस के बच्चे: // localhost/W3SVC/1/रूट वर्चुअल निर्देशिका या फ़ोल्डर्स होंगे। वेबसाइट आईआईएस: // लोकहोस्ट/डब्ल्यू 3 एसवीसी होगी।

2

Windows में 7/8 जाना नियंत्रण कक्ष/कार्यक्रम और सुविधाएँ/बारी विंडोज पर सुविधाओं या बंद, और जांच सभी आइटम से: वेब प्रबंधन उपकरण, (यह शामिल हैं: आईआईएस प्रबंधन सेवा, II 6 प्रबंधन संगतता)।

और आप कोड का उपयोग कर सकते हैं:

public static void OpenWebsite(string name) 
{ 
    DirectoryEntry Services = new DirectoryEntry("IIS://localhost/W3SVC"); 
    IEnumerator ie = Services.Children.GetEnumerator(); 
    DirectoryEntry Server = null; 
    string nombre = ""; 

    while (ie.MoveNext()) 
    { 
     Server = (DirectoryEntry)ie.Current; 
     if (Server.SchemaClassName == IIsWebServer) 
     { 
      nombre = Server.Properties["ServerComment"][0].ToString(); 
      if (nombre == name) 
      { 
       break;     
      } 
     } 
    } 

    Console.Write(nombre); 
} 
संबंधित मुद्दे

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