2011-09-30 4 views
3

가상 디렉터리 이름이 있습니다. 이 가상 디렉터리에 대해 연결된 응용 프로그램 풀을 찾아야합니다. 내가 응용 프로그램 풀을 일단 나는이 응용 프로그램 풀에있는 모든 가상 디렉터리를 찾을 수있다 .. 내가IIS7에서 응용 프로그램 풀과 연결된 응용 프로그램을 얻는 방법

string AppPoolName = string.Empty; 
      ServerManager manager = new ServerManager(); 
      foreach (Site site in manager.Sites) 
      { 
       foreach (Application app in site.Applications) 
       { 
        string path = app.Path; 
        path = path.Replace("/", " "); 
        path = path.Trim(); 

        if (path.ToLower() == VDName.ToLower()) 
        { 
         AppPoolName = app.ApplicationPoolName; 
         break; 
        } 
       } 
      } 

답변

2

을 개발하기 위해 힌트를 줄 것이다.

ServerManager manager = new ServerManager(); 
     foreach (Site site in manager.Sites) 
     { 
      foreach (Application app in site.Applications) 
      { 

       if (app.ApplicationPoolName.ToString() == AppPoolName) 
       { 
        string appname = app.Path; 
       } 
      } 
     } 
1

이 링크 할 수 있음 가상 디렉토리와 관련된 응용 프로그램 풀을 찾으려면이 코드를 사용하고 당신은 당신의 코드를 우리가 관련된 응용 프로그램의 이름을 얻기 위해 응용 프로그램 풀에 대한 기능을 다시 실행한다고 생각

Restarting (Recycling) an Application Pool

+0

가 ..... 특정 응용 프로그램 풀에 응용 프로그램의 목록을 얻기에 관하여 – vinay

1

또는 새로운 라인 더 루프 방식 없습니다 : 링크 @Praveen

Environment.GetEnvironmentVariable("APP_POOL_ID", EnvironmentVariableTarget.Process); 
4
using (var serverManager = new ServerManager()) 
{ 
    var apps = (from site in serverManager.Sites 
       from app in site.Applications 
       where app.ApplicationPoolName.Equals("DefaultAppPool") 
       select app); 
} 
+2

어떤 힌트를 제공하지 않습니다 스택 오버플로에 오신 것을 환영합니다! 일반적으로 응답은 코드의 의도에 대한 설명과 다른 사람들을 소개하지 않고 문제를 해결하는 이유를 설명하는 경우 훨씬 더 유용합니다. (이 게시물은 적어도 하나의 사용자에 의해 표시되었으므로 아마도 설명이없는 답이 삭제되어야한다고 생각했기 때문일 것입니다.) –

+0

*** appcmd ***을 사용하면 확실합니까? '% windir % \ system32 \ inetsrv \ appcmd list apppool' ... – Kiquenet

관련 문제