Aracılığıyla paylaş


Yönetilen Kod Kullanarak Configuration Manager Zaman Uyumlu Hataları İşleme

Zaman uyumlu sorguda oluşan Configuration Manager hatasını işlemek için SmsQueryException özel durumunu yakalarsınız. Bu özel durum SMS_Exception] tarafından da yakalandığından, onu ve SmsConnectionException özel durumunu aynı catch bloğunda yakalayabilirsiniz.

Bir SMS_Exception yakalanan özel durum bir SmsQueryException ise, bunu kullanarak temel alınan __ExtendedException veya SMS_ExtendedExceptionöğesine ulaşabilirsiniz. Yönetilen SMS Sağlayıcısı kitaplığı bu özel durumları sarmalamadığından, bunlara erişmek için System.Management ad alanı ManagementException nesnesini kullanmanız gerekir.

Not

Netlik sağlamak için, bu belgedeki örneklerin çoğu yalnızca özel durumları yeniden oluşturur. Daha bilgilendirici özel durum bilgileri istiyorsanız bunları aşağıdaki örnekle değiştirebilirsiniz.

Zaman uyumlu sorgu hatasını işlemek için

  1. SMS Sağlayıcısına erişmek için kod yazın.

  2. SmsQueryException ve SmsConnectionException özel durumlarını yakalamak için aşağıdaki örnek kodu kullanın.

Örnek

Aşağıdaki C# örnek işlevi var SMS_Package olmayan bir paketi açmaya çalışır. Özel durum işleyicisinde kod, ne tür bir hatanın oluştuğunu belirler ve bilgilerini görüntüler.

Örnek kodu çağırma hakkında bilgi için bkz. Configuration Manager Kod Parçacıklarını Çağırma.

public void ExerciseException(WqlConnectionManager connection)  
{  
    try  
    {  

        IResultObject package = connection.GetInstance(@"SMS_Package.PackageID='UNKNOWN'");  
        Console.WriteLine("Package Name: " + package["Name"].StringValue);  
        Console.WriteLine("Package Description: " + package["Description"].StringValue);  

    }  
    catch (SmsException e)  
    {  
        if (e is SmsQueryException)  
        {  
            SmsQueryException queryException = (SmsQueryException)e;  
            Console.WriteLine(queryException.Message);  

            // Get either the __ExtendedStatus or SMS_ExtendedStatus object and display various properties.  
            ManagementException mgmtExcept = queryException.InnerException as ManagementException;  

            if (mgmtExcept != null)  
            {  
                if (string.Equals(mgmtExcept.ErrorInformation.ClassPath.ToString(), "SMS_ExtendedStatus", StringComparison.OrdinalIgnoreCase) == true)  
                {  
                    Console.WriteLine("Configuration Manager provider exception");  
                }  

                else if (string.Equals(mgmtExcept.ErrorInformation.ClassPath.ToString(), "__ExtendedStatus", StringComparison.OrdinalIgnoreCase) == true)  
                {  
                    Console.WriteLine("WMI exception");  
                }  
                Console.WriteLine(mgmtExcept.ErrorCode.ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["ParameterInfo"].ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["Operation"].ToString());  
                Console.WriteLine(mgmtExcept.ErrorInformation["ProviderName"].ToString());  
            }  

        }  
        if (e is SmsConnectionException)  
        {  
            Console.WriteLine("There was a connection error :" + ((SmsConnectionException)e).Message);  
            Console.WriteLine(((SmsConnectionException)e).ErrorCode);  
        }  
    }  
}  

Örnek yöntem aşağıdaki parametrelere sahiptir:

Parametre Tür Açıklama
connection - WqlConnectionManager Sağlayıcıya geçerli bir bağlantı.

Kodu Derleme

Bu C# örneği şunları gerektirir:

Ad alanları

Sistem

System.Collections.Generic

System.Text

Microsoft. ConfigurationManagement.ManagementProvider

Microsoft. ConfigurationManagement.ManagementProvider.WqlQueryEngine

System.Management

System.ComponentModel

Derleme

microsoft.configurationmanagement.managementprovider

adminui.wqlqueryengine

System.Management

Sağlam Programlama

Hata işleme hakkında daha fazla bilgi için bkz. Configuration Manager Hataları Hakkında.

Ayrıca Bkz

Hatalar hakkında YönetilenKod Kullanarak Configuration Manager Zaman Uyumsuz Hataları İşleme