2010-04-23 3 views
2

저는 현재 IISVdir 도구를 사용하여 응용 프로그램 및 가상 디렉터리를 작성/수정/업데이트하고이를 IIS7 용 AppCmd으로 바꾸는 오래된 II6 자동화 스크립트를 업그레이드하는 중입니다.IIS7 AppCmd ​​도구에서 IIS6 스타일 메타베이스 경로는 어떻게 사용합니까?

IIS6, "IISVDir"명령은 메타베이스의 경로를 참조합니다 (예 : /W3SVC/1/ROOT/MyApp). 여기서 1은 "기본 웹 사이트"의 ID입니다. 이 명령은 실제로 사이트의 표시 이름을 변경하지 않아도됩니다.

다른 언어 OS에서 "기본 웹 사이트"사이트 이름에 "예 상 웹 사이트"또는 그 밖의 다른 이름이 붙어 있기 때문에 정상적으로 작동합니다. 그러나 AppCmd가 언어 중립적 인 식별자가 아닌 이름을 통해서만 "기본 웹 사이트"를 참조 할 수 있다면이 유연성은 상실됩니다.

그래서 "기본 앱 사이트"를 참조하기 위해 언어 중립적 식별자를 사용하여 사이트, vdir 및 앱을 참조하도록 AppCmd를 스크립팅 할 수 있습니까?

아마도 처음부터 내 사이트를 만들고 이름을 지정하고 "기본 웹 사이트"를 루트로 사용하지 않아야합니까?

Example of it in Japanese이 가 (공시가

: 난 단지 내가 현재 작업 오전 IIS7 영어 기계를 가지고,하지만 난 내 옛날 스크립트를 테스트하기 위해 모두 IIS6 영어와 IIS6 일본 기계가 - 그래서 아마도 그것은 정말 단지 "기본 웹 사이트"가 여전히 IIS7- 일본어에 있습니까?)

답변

3

APPCMD 도구는 사이트 이름 (주로)과 함께 작동합니다. 다음을 위해, 프로그램이 작업을 수행 할 필요가

How do I reference a site by ID using IIS7 APPCMD? (ServerFault.com)

당신이 ID로 사이트 작업을 시작하려면 : 나는 정확히 같은 문제에 대해 잠시 다시 서버 오류에 비슷한 질문을 예 :

int iisNumber = 1; // The default website 
using (ServerManager serverManager = new ServerManager()) 
{ 
    var site = serverManager.Sites 
     .Where(s => s.Id == iisNumber) 
     .SingleOrDefault(); 

    if(site != null) 
    { 
    site.Stop(); 

    // Do stuff to site... 

    site.Start(); 
    } 
    serverManager.CommitChanges(); 
} 
+0

감사합니다. 아마 작은 콘솔 앱에이 사이트를 구축하여 지정된 사이트 ID 인수에서 사이트의 이름을 얻을 수 있습니다. (라메!) –