당신은 읽고 IIS 7.0 구성 시스템에 대한 쓰기 액세스를 제공 ServerManager (Microsoft.Web.Administration)을 찾고 있습니다.
Microsoft.Web.Administration.SiteCollection을 반복하고 사이트 개체를 사용하여 웹 사이트에 대한 참조를 가져오고 Name 속성 값을 읽습니다.
// Snippet
using (ServerManager serverManager = new ServerManager()) {
var sites = serverManager.Sites;
foreach (Site site in sites) {
Console.WriteLine(site.Name); // This will return the WebSite name
}
당신은 또한 ServerManager.Sites 수집을 쿼리 LINQ를 사용할 수 있습니다
// Start all stopped WebSites using the power of Linq :)
var sites = (from site in serverManager.Sites
where site.State == ObjectState.Stopped
orderby site.Name
select site);
foreach (Site site in sites) {
site.Start();
}
주 (아래 예 참조) : Microsoft.Web.Administration는 만와 IIS7 작동합니다.
IIS6의 경우 ADSI와 WMI를 모두 사용할 수 있지만 ADSI보다 빠른 WMI를 사용하는 것이 좋습니다. WMI를 사용하는 경우 WMI Code Creator 1.0 (Microsoft에서 무료/개발)을 확인하십시오. 그것은 당신을 위해 코드를 생성합니다.
HTH
아래에 사용할 수 있습니까? –
필자가 작성한 웹 응용 프로그램에 대한 라이센스를 부여하고 있으며 라이센스 키가 동일한 서버에서도 웹 응용 프로그램 당 한 번만 사용되는지 확인해야합니다. 웹 응용 프로그램은 IIS 사이트에 할당 된 여러 도메인 이름으로 작동하므로 사이트의 도메인 이름에 키를 바인딩 할 수 없습니다. 동일한 머신에서 여러 클라이언트에 대해 내 앱을 설치할 수 있기 때문에 동일한 헛된 바인딩에서 컴퓨터 이름에 대한 키를 사용할 수 없습니다. 간단히 말해서 특정 컴퓨터에서 IIS 웹 사이트를 고유하게 식별 할 필요가 있습니다. IIS는 같은 이름을 가진 여러 사이트를 허용하지 않기 때문에 그 길을 갈 수 있습니다. –
나는 외눈 박이 소리에서 벗어나려하지 않았다. 나는 왜 누군가가 그렇게하고 싶어하는지 궁금하다. –