2011-09-06 40 views
1

嗨,我正在開發C#中的MMC管理單元,在c中的MMC開發#

在此我想讀取XML文件,以便放置我的XML文件。

該代碼沒有給出任何構建錯誤,但是當我在MMC中添加管理單元時,它給出錯誤該怎麼做。

[SnapInSettings("{2078B103-76FF-46E1-95BB-8B2CE3A72E60}", 
    DisplayName = "Configuration", 
    Description = "abc Pvt Ltd.") 
    ] 
    public class Mymmc : SnapIn 
    { 
     XDocument xDoc; 
     public Sararmmc() 
     { 
      ScopeNode childscopenode; 
      xDoc = XDocument.Load("MMCSnapinXML.xml"); 
      IEnumerable<XElement> xelements = xDoc.Root.Descendants(); 
      this.RootNode = new ScopeNode(); 
      this.RootNode.DisplayName = xDoc.Root.Attribute("name").Value; 
      foreach (XElement elm in xelements) 
      { 
       childscopenode = new ScopeNode(); 
       childscopenode.DisplayName = elm.Attribute("name").Value; 
       this.RootNode.Children.Add(childscopenode); 
      } 

     } 

    } 

我得到 異常已通過調用的目標引發異常。

Server stack trace: 
    at System.RuntimeTypeHandle.CreateInstance(RuntimeType type, Boolean publicOnly, Boolean noCheck, Boolean& canBeCached, RuntimeMethodHandle& ctor, Boolean& bNeedSecurityCheck) 
    at System.RuntimeType.CreateInstanceSlow(Boolean publicOnly, Boolean fillCache) 
    at System.RuntimeType.CreateInstanceImpl(Boolean publicOnly, Boolean skipVisibilityChecks, Boolean fillCache) 
    at System.Activator.CreateInstance(Type type, Boolean nonPublic) 
    at System.RuntimeType.CreateInstanceImpl(BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(Type type, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes) 
    at System.Activator.CreateInstance(String assemblyName, String typeName, Boolean ignoreCase, BindingFlags bindingAttr, Binder binder, Object[] args, CultureInfo culture, Object[] activationAttributes, Evidence securityInfo, StackCrawlMark& stackMark) 
    at System.Activator.CreateInstance(String assemblyName, String typeName) 
    at System.AppDomain.CreateInstance(String assemblyName, String typeName) 
    at System.AppDomain.CreateInstanceAndUnwrap(String assemblyName, String typeName) 
    at Microsoft.ManagementConsole.Internal.SnapInClient.CreateSnapIn(String assemblyName, String typeName) 
    at Microsoft.ManagementConsole.Internal.ClassLibraryServices.Microsoft.ManagementConsole.Internal.IClassLibraryServices.CreateSnapIn(String assemblyName, String typeName) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink._PrivateProcessMessage(IntPtr md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink.PrivateProcessMessage(RuntimeMethodHandle md, Object[] args, Object server, Int32 methodPtr, Boolean fExecuteInContext, Object[]& outArgs) 
    at System.Runtime.Remoting.Messaging.StackBuilderSink.SyncProcessMessage(IMessage msg, Int32 methodPtr, Boolean fExecuteInContext) 

Exception rethrown at [0]: 
    at Microsoft.ManagementConsole.Executive.SnapInInitializationOperation.OnStart() 
    at Microsoft.ManagementConsole.Executive.Operation.Start() 
    at Microsoft.ManagementConsole.Executive.RunningOperationsTable.EnqueueOperation(Operation operation) 
    at Microsoft.ManagementConsole.Executive.StandAloneComponentData..ctor(SnapInRegistrationInfo info, Int32 bookkeepingId) 
    at Microsoft.ManagementConsole.Advanced.FrameworkSnapInFactory.Microsoft.ManagementConsole.Advanced.ISnapInFactory.CreateSnapIn(Int32 bookkeepingId, String snapInKey, Object& snapIn) 
+3

你得到了什麼錯誤/異常? –

+0

解釋你得到哪種錯誤!!!!!!!!! – sikender

+0

您的代碼是否執行任何日誌記錄?如果沒有,是時候開始;) – MattDavey

回答

1

在你的構造函數中可能會拋出很多異常(堆棧跟蹤表明這是錯誤的根源)。它可能是XDocument.Load上引發的格式不正確的XML異常,如果您正在訪問的任何命名節點/屬性不存在,它也可能是空引用異常。它可能是一個沒有找到的文件異常,甚至是一個SecurityException - 它甚至可能是一些比較模糊的東西,比如MMC要求你的程序集簽名。不知道你得到了什麼類型的異常,任何人都很難幫助你!

正如我在我的評論中所說的那樣,當您在運行時收到錯誤時無法輕鬆解釋 - 這是在您的應用程序中進行冗長的日誌記錄變得非常有價值! NLog和log4net是.NET應用程序的兩種最流行的日誌框架

+0

馬特我得到的解決方案其實我把我的MMCSnapinXML保存在system32文件夾中,但它看起來是在用戶文件夾中的相同文件,並沒有得到xml文件 – Meraj

+1

很高興你有它排序,但請採取我的意見重新:日誌:) – MattDavey