2009-05-01 4 views
3

für meine IIS7-Website musste ich in den IIS7-Dienst-Manager gehen und alle Bindungen für die Website definieren. Funktioniert gut.Kann ich meine IIS7-Site-Bindungen programmatisch definieren (z. B. foo.domain.com)?

Ich frage mich, ob es möglich ist, dies programmatisch in der Datei web.config zu tun? Ich weiß, dass du dort ein paar iis7-Einstellungen bereitstellen kannst. Warst du nicht sicher, ob es möglich ist, auch die Bindungen einzubinden?

z.

  1. http; alle nicht zugewiesenen IPs; Port 80; foo.domain.com
  2. https; 192.168.0.2; Port 443; blah.domain.com

Dank :)

Antwort

2

Die Konfiguration befindet sich in der Konfigurationsdatei der übergeordneten AnwendungHost.config, aber ich bin mir nicht sicher, ob sie überschrieben werden kann. Zum Beispiel in IIS Express der Abschnitt Sie suchen, ist:

<system.applicationHost> 
... 

    <sites> 
     <site name="Development Web Site" id="1" serverAutoStart="true"> 
      <application path="/"> 
       <virtualDirectory path="/" physicalPath="%IIS_BIN%\AppServer\empty_wwwroot" /> 
      </application> 
      <bindings> 
       <binding protocol="http" bindingInformation=":8080:localhost" /> 
      </bindings> 
     </site> 
     <siteDefaults> 
      <logFile logFormat="W3C" directory="%IIS_USER_HOME%\Logs" /> 
      <traceFailedRequestsLogging directory="%IIS_USER_HOME%\TraceLogFiles" enabled="true" maxLogFileSizeKB="1024" /> 
     </siteDefaults> 
     <applicationDefaults applicationPool="IISExpressAppPool" /> 
     <virtualDirectoryDefaults allowSubDirConfig="true" /> 
    </sites> 

</system.applicationHost> 

Sie könnten versuchen, laufen (sorry - ich habe eine dieser selbst nicht ausprobiert):

% windir% \ system32 \ inetsrv \ appcmd.exe Unlock Config -Abschnitt: system.applicationHost

Aber aus sicherheitstechnischer Sicht nicht sinnvoll, jedes einzeln Chaos zu ermöglichen web.configs mit system.applicationHost macht, als eine Website Config könnte jede andere Seite brechen.

1

Blick auf die Microsoft.Web.Administration Namespace. Sie können dann die meisten IIS 7 aus C# -Code konfigurieren und mani- ilieren.

gibt es auch ein Dienstprogramm Appcmd, mit dem Sie fast alles in IIS 7.0 manipulieren können. seien Sie gewarnt, dass dieses Tool Tonnen von Optionen und Schalter hat. Ich habe es nur für die grundlegendsten Aufgaben verwendet, z. B. für das Ändern physischer Verzeichnisse in Anwendungen.

+0

Hallo Mike. Ich möchte tatsächlich keine der Server programmatisch konfigurieren (zB eine neue IIS-Website erstellen, etc.). Ich hoffte zu wissen, ob es möglich ist, einige der Einstellungen einer einzelnen Website zu optimieren (zB Standardseite, Liste von Bindungen, usw.). –

+0

Und haben Sie den von ihm erwähnten Namensraum untersucht? Scheint alles zu haben, was du willst. – samjudson

+0

Ich glaube nicht, dass web.config dies tun kann. Tatsächlich weiß ich, dass dies nicht möglich ist, weil web.config in jedem virtuellen Verzeichnis verschachtelt werden kann. Das Problem dabei ist, dass Sie diese Direktive in mehreren tiefen Verzeichnissen bekommen könnten und wie würde sich dieser Konflikt lösen. – MikeJ