2010-02-16 1 views
2

AA,ASP.Net 응용 프로그램에서 WMI, C#을 사용하여 System.Managment 개체에 사용자 지정 속성을 추가하는 방법?

WMi 개체의 Properties 컬렉션에 사용자 지정 속성을 추가하려고합니다. 그래서 그 개체의 속성을 검색 할 때마다 사용자 지정 추가 속성을 얻을. 구체적으로 말하면 다음 코드를 볼 수 있습니다.

foreach (ManagementObject WebSite in WebSitesCollection) 
     { 
      if (WebSite.Properties["Name"].Value.ToString().Contains(appPoolName)) 
      { 
       foreach (PropertyData propertyData in WebSite.Properties) 
       { 
        try 
        { 

         HttpContext.Current.Response.Write(propertyData.Name + " " + propertyData.Value + "<br/>"); 
         if (propertyData.Name.Equals("Enable32BitAppOnWin64")) 
         { 
          AppPoolx.SetPropertyValue("Enable32BitAppOnWin64", true); 
          AppPoolx.Put(); return true; 
         } 
         else 
         { 
         AppPoolx.Properties.Add("Enable32BitAppOnWin64", true); 
          AppPoolx.Put(); return true; 
         } 

        } 
        catch (Exception ex1) 
        { 
         HttpContext.Current.Response.Write("Error Ocurred while Setting Property: " + ex1.Message + "<br />"); 
         break; 
        } 
       } 
      } 

     } 

그러나 AppPoolx.Properties.Add("Enable32BitAppOnWin64", true); 반환 오류

작동으로 인해 개체의 현재 상태에 유효하지 않습니다.

WMi 개체에 사용자 지정 속성을 추가 할 수 있는지 궁금합니다. 이 Add() 함수는 무엇입니까?

"WMI 개체에 사용자 지정 속성 추가"의 올바른 절차는 무엇입니까?

DB에 저장할 수 있다고 제안하지 마십시오.

감사

스티브

답변

2

WMI 개체는 C#을 그 객체가 다른 끝에있는 코드에 의해 채워집니다 객체 많은처럼, 기본적으로 COM 개체입니다.

이 사용자 지정 속성을 추가하려면 사용자 지정 속성의 개체 데이터를 저장하기 위해 다른 쪽 끝의 코드에 기능을 추가해야합니다.

호출하는 add 속성 메서드가 WMI API에 의해 반환되는 모든 (거의 대부분의) COM 개체에 유효하지 않습니다. 이것이 가능성이 있습니다.이 문제는 WMI의 개체와 관련이 있다는 것을 알고 있습니다. 호출은 호출 된 COM 구성 요소에서 마샬링됩니다.

이렇게 짧게 : 이것은 가능하지 않습니다.

더 정확한 접근 방법은 작업중인 개체의 실제 유형을 확인하고 개체에 대해 쓸 수있는 속성 값을 설정 한 다음 다시 개체를 WMI API로 푸시하는 것입니다.

관련 문제