2013-12-12 6 views
1

간단한 C# 콘솔 응용 프로그램에서 IIS 8의 모든 사이트를 표시하려고합니다. (이것은 스파이크 일 뿐이며 결국 asp.net MVC 4 응용 프로그램).IIS 8 용 Microsoft.Web.Administration이 모든 사이트를 표시하지 않습니다.

Microsoft.Web.Administration dll (C : \ Windows \ System32 \ inetsrv)을 \ References에 복사하고 거기에서 참조했습니다.

내 서버에

, 3 개 사이트가 있습니다

  • 기본 웹 사이트
  • WebDAV를
  • 열렬한 나는 모든 사이트 목록에 다음을 수행하고

:

static void Main(string[] args) 
    { 
     using (ServerManager serverManager = new ServerManager()) 
     { 
      try 
      { 
       if (serverManager != null) 
       { 
        Console.WriteLine(serverManager.Sites.ToString()); 
        foreach (Site site in serverManager.Sites) 
        { 
         Console.WriteLine(site.Name); 
         Console.Read(); 
        } 
       } 
      } 
      catch (Exception e) 
      { 
       Console.WriteLine(e.Message); 
       Console.Read(); 
      } 
     } 
    } 

문제는 그쪽으로입니다. 나는이 서버에서 실행하면 t는, 그것은 단지

기본 웹 사이트

에게 표시 나는

appcmd list site 

를 실행하고 세 가지를 모두 얻었다.

그럼에도 불구하고 C# 응용 프로그램에서 appcmd를 사용하여 명령 줄을 실행하는 것보다는 Microsoft.Web.Administration을 사용하는 것이 좋습니다.

왜 이런 일이 벌어 질 지에 대한 통찰력을 공유하십시오. 감사합니다. .

+2

죄송 합니다만 바보 같은 질문이지만 루프에 console.read()가 있으므로 첫 번째 기록선 다음에 입력을 위해 일시 ​​중지됩니다. 그런 다음 키를 입력하고 Enter 키를 누르면 앱이 종료됩니다. 문자 + char (13) + char (10)을 읽습니다. 그냥 루프 외부로 옮기십시오. –

+0

@DavidMartin 와우. 나는 지금 어리 석다. 어제 레퍼런스에 몇 가지 다른 문제가 있었는데 해결했지만, 그 시간에 루프를 추가했고, read()를 꺼내는 것을 잊어 버린 것 같습니다. 이것은 바보입니다. 지적 해 주셔서 고마워요. – nestedloop

답변

1

David는 자신의 의견에서 지적했듯이 내가 관찰하지 못한 어리석은 실수를 저질렀습니다. 답이없는 목록에서 질문을 삭제하려면이 답변을 게시하고 있습니다.

는 실수는 foreach는 내부

Console.Read() 

했다.