2014-07-17 10 views
0

웹 설치 프로젝트 및 사용자 지정 작업 등을 사용하는 방법에 대한 기사를 많이 읽었습니다. 그러나 '기본 사이트'에 포함되지 않은 IIS에서 새 웹 사이트를 만드는 방법을 설명하는 것은 아닙니다. 다음 방법은 설치 방법 중이라고웹 설치 프로젝트 사용 IIS에서 기본 사이트가 아닌 새 웹 사이트를 만들려면 어떻게해야합니까?

private const string MetaBasePath = "IIS://Localhost/W3SVC"; 

:

private void CreateWebsite() 
{ 
    DirectoryEntry IISWebSites = new DirectoryEntry(MetaBasePath); 
    DirectoryEntries sites = IISWebSites.Children; 
    DirectoryEntry TestAppWebSite = sites.Add("TestWebApp", (IISWebSites.SchemaClassName.Replace("Service", "Server"))); 
    TestAppWebSite.Properties["ServerComment"][0] = "Testing"; 
    TestAppWebSite.CommitChanges(); 
} 

이가 보인다

나는 현재 기사 중 하나에서 적응 된 다음과 같은 코드를 가지고 '기본 사이트'아래에서 웹 사이트를 만들 수 있습니다. 'MetaBasePath'가 올바르게 정의되어 있는지 확인하는 것이 좋습니다.이 방법은 웹 사이트가 현재 존재하는지 확인하기 위해 다른 방법에서도 사용되기 때문입니다. 이 메소드는 'MetaBasePath'의 자식을 관통하고 각각의 속성을 검사합니다. 나는이 코드를 밟았으며 이것이 내가 기대하는 웹 사이트를 되돌려 놓고 있기 때문에 그 경로에서 올바른 정보를 얻고 있다는 것을 알고있다.

무엇이 누락 되었습니까?

UPDATE는 내가 이름 대신 사이트 ID를 사용하면되지 '기본 사이트'에서 새 사이트를 만들 수있을 것으로 보인다.

답변

0

IIS 6의 내 업데이트에 따라 사이트 ID를 사용하여이 작업을 수행 할 수 있습니다. 이를 위해 사이트 ID를 얻고 순서를 정한 다음 루프를 반복합니다. 그런 다음 1을 추가하여 다음 1을 제공했습니다.

IIS 7의 경우 훨씬 쉽습니다. SiteCollection을 가져 와서 추가하십시오. 아래 참조 :

private ServerManager mgr = new ServerManager();  

SiteCollection sites = mgr.Sites; 
int port; 
Int32.TryParse(targetPort, out port); 
string DirectoryPath = targetDirectory.Substring(0, targetDirectory.LastIndexOf("\\")); 
site = sites.Add(targetSite, DirectoryPath, port); 
mgr.CommitChanges();