2012-02-11 3 views
2

웹 응용 프로그램 (asp.net 4.0/C#)을 통해 IIS7에서 작동하는 웹 사이트에 호스트 헤더를 추가하고 싶습니다. 나는 그들 대부분이 iis7에서 일하지 않는다고 생각한다. (참고 : 내가 IIS 구성을 변경하는 동안 보안 문제가있을 실 거예요 추측 있도록 웹 응용 프로그램은 동일한 서버에서 호스팅되는)프로그래밍 방식으로 IIS 7의 웹 사이트에 호스트 헤더 추가

이 어떤 도움 감사합니다, 감사

+0

이 질문에 당신을 도울 수 있습니다해야 할 일을했을 http://stackoverflow.com/questions/5121383/iis-7-0-vs-7-5-site-microsoft-web-administration-site -bindingcollection –

+0

나는 당신이 충분히 명확하지 않다고 생각한다. 더 자세한 정보를 제공 할 수 있습니까? 바인딩 추가/변경 하시겠습니까? – Tomek

답변

2

나는이 솔루션을 발견하고 나를 위해 작동을 이것은 몇 가지 매개 변수가있는 약간의 기능입니다. 단지 iss 구성에서 yourwebsite의 ID를 찾아야합니다. 서버의 IP 주소 (iis)와 포트 번호 및 호스트 이름을 함수에 제공해야합니다. 그것은, "127.0.0.1:81을"당신이 예를

AddHostHeader (2 entered.For 매개 변수를 사용하여 hostheader을 추가 할 것입니다, 81, "newsHostHeader");

static void AddHostHeader(int? websiteID, string ipAddress, int? port, string hostname) 
    { 
     using (var directoryEntry = new DirectoryEntry("IIS://localhost/w3svc/" + websiteID.ToString())) 
     { 
      var bindings = directoryEntry.Properties["ServerBindings"]; 
      var header = string.Format("{0}:{1}:{2}", ipAddress, port, hostname); 
      if (bindings.Contains(header)) 
       throw new InvalidOperationException("Host Header already exists!"); 
      bindings.Add(header); 
      directoryEntry.CommitChanges(); 
     } 
    } 

(참고 : System.DirectoryServices를 사용하여 페이지에 추가하는 것을 잊지 마세요, Microsoft.Web.Administration을 사용하여)

+0

이 System.DirectoryServices.DirectoryEntry.Bind에서 중지됩니다. Windows 8 IIS 7.5에서 이 발생했습니다. –

+0

일부 자격 증명 설정을 확인해야 할 수도 있습니다. IUSR 사용자가 헤더를 웹 사이트에 추가 할 수없는 것 같습니다. 귀하의 IIS에서. – slayer35

+0

err .. 결과적으로이 작업을 수행하는 데 사용됨 http://www.iis.net/configreference/system.applicationhost/sites/site/bindings/binding –

관련 문제