2006/05/12

IIS 7 관리 닷넷 Microsoft.Web.Administration 클래스

IIS7에서는,, 닷넷 코드로 IIS를 직접관리할수 있는 클래스 어셈블리를 제공한다고 합니다.
기존에는 ADSI 또는 WMI를 통해서만 가능했죠...

다음과 같이,,. Vbscript 에서 말이죠..

strComputer = "LocalHost"
Set objIIS = GetObject _
    ("IIS://" & strComputer & "/W3SVC/AppPools/MSSharePointAppPool") objIIS.Recycle

또는,

strComputer = "."
Set objWMIService = GetObject _
    ("winmgmts:{authenticationLevel=pktPrivacy}\\" _
        & strComputer & "\root\microsoftiisv2") Set colItems = objWMIService.ExecQuery _
    ("Select * From IIsApplicationPool Where Name = " & _
        "'W3SVC/AppPools/MSSharePointAppPool'") For Each objItem in colItems
    objItem.Recycle
Next

물론,. Microsoft.Web.Administration 클래스의 내부 아키텍쳐가 어떻게 되어 있는지는 아직은 알수 없으나,. WMI 리포지토리를 이용하는지도 모르겠네요..

글이 작성되는 현재시점 기준,. Vista 베타를 통해서 테스트를 해볼수 있다고 합니다.
어셈블리는 Microsoft.Web.Administration.dll  이며, 파일 위치는 %WinDir%\System32\InetSrv 에 있습니다.




닷넷을 하실줄 안다면,. VS에서 참조하여 다음과 같은 작업이 가능합니다. 다음 코드는 C# 기준 입니다.

웹사이트 생성
 ServerManager iisManager = new ServerManager();
iisManager.Sites.Add("NewSite""http""*:8080:""d:\\MySite");
iisManager.Update();

응용프로그램 디렉토리 생성
 ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Applications.Add("/Sales""d:\\MyApp");
iisManager.Update();

가상디렉토리 생성
 ServerManager iisManager = new ServerManager();
Application app iisManager.Sites["NewSite"].Applications["/Sales"];
app.VirtualDirectories.Add("/VDir""d:\\MyVDir");
iisManager.Update();

실행 상태 및 관리
 ServerManager iisManager = new ServerManager();
iisManager.Sites["NewSite"].Stop();

응용프로그램풀 재생
 ServerManager iisManager = new ServerManager();
iisManager.ApplicationPools["DefaultAppPool"].Recycle();

실행요청 목록
 ServerManager iisManager = new ServerManager();
foreach
(WorkerProcess w3wp in iisManager.WorkerProcesses) {
    Console.WriteLine(
"W3WP ({0})", w3wp.ProcessId);
            
    foreach 
(Request request in w3wp.GetRequests(0)) {
        Console.WriteLine(
"{0} - {1},{2},{3}",
                    request.Url,
                    request.ClientIPAddr,
                    request.TimeElapsed,
                    request.TimeInState)
;
    
}
}


아뭏튼,, Windows 버젼이 올라갈수록 또는 제품이 버젼업 될수록 점점더 닷넷과 통합되어 나오고 있습니다. 최근에 발표된 SQL Server 2005의 경우 관리툴인 매니지먼트스튜디오도 닷넷2로 제작되고 있으니깐요.. 물론 핵심 코어는 네이티브 코드 이겠지만,, ^^

닷넷을 할줄알면 앞으로 관리가 점점 더,. 훨씬 쉬워지겠죠.^^



11-iis7-web.admin.png

댓글 없음:

댓글 쓰기

가장 많이 본 글