Frage

Ich bin mit einem Staging-Modell mit MSDeploy ein paar unserer Seiten zu einer Web-Farm bereitstellen. Die Standorte in IIS auf den Staging-Boxen konfiguriert sind, nur, und dann wird MSDeploy verwendet, um die Ziel-Web-Server von Grund auf neu zu bauen.

Die Inszenierung Box verwendet seine eigenen Bindungen (dh keine Header-Einträge, verschiedenen IPs / Ports und keinen Host-Header) für die Websites, die Live sein. Als ich sie bereitstellen Ich habe zunächst eine XML-Datei, die eine parametrisierte Paket vorzubereiten verwendet (mit dem -declareParamFile Schalter), die Parameter erklärt, wie folgt:

<parameters>
  <parameter name="site1">
    <parameterEntry kind="DestinationBinding" scope="Site1" match=":17000:" />
  </parameter>
</parameters>

So in der obigen XML können Sie sehen, dass die Website ist eine Veranstaltung der auf Port gehostet 17000 als das match Attribut gesetzt ist eine Bindung, die diesen Wert hat zu entsprechen.

Als ich dann zu jeder Live-Site bereitstellen, verwende ich einen anderen Parameter XML, die angibt, die richtigen Host-Header und IP für diese Maschine - Ich beantrage dies die -setParamFile Schalter. Hier ist ein Beispiel für einen von ihnen.

<parameters>
  <setParameter name="site1" value="[ip_addr]:[port]:[host_header]"/>
</parameters>

Also, da der ursprüngliche Parameter deklariert ist einer der bekannten Bindungen entsprechen. - Ich kann ersetzen, dass die Bindung mit dem, was ich eigentlich will es auf jedem Live-Server sein

Was ich jetzt tun möchte, ist die Website zu implementieren und fügen Sie neue Ziel Bindungen es, die die verschiedenen TLDs übernehmen, den wir haben - dh site.com, Website .co.uk, site.ca usw., alle gebunden auf der gleichen IP-Adresse und Port.

Die Gründe für den Wunsch, dies zu tun, sind:

  • Wir haben eine neue Website, dass wir das einsetzen wollen einen anderen Host-Namen brauchen, aber wir wollen es nicht eigene IP, um ihm die Adresse (läuft hier von IPs aus!), Aber haben es die IP-teilen, dass eine bestehende Website auf den Servern bereits hat.
  • Diese Mittel bestimmten Hostnamen Bindungen auf der Website hinzufügen, die bereits passiert es, statt es zu, die reagieren auf jeden Hostnamen.
  • Wir haben vier Domain-Namen zeigen derzeit die Auslastung der vorhandenen Site ausgewogen IP (.com, .us, .de, .com.au). Im Moment funktioniert es, weil der Web-Server nicht um den Host-Header schert -. Aber wenn die neue Website auf dem gleiche IP geht, wird es, und der andere Domain-Name nicht mehr funktionieren

Das Problem ist, ich glaube nicht, dass es eine Möglichkeit zu sein scheint, diese Informationen hinzuzufügen. Ich habe versucht, mehr setParameter Elemente in der zweiten XML hinzugefügt, aber das hat einfach die Wirkung der Bindung, mit der letzten als späterem Sieger immer wieder überschrieben werden.

Eine Lösung ist für mich für jede der Websites auf der Staging-Box, die die externen Zielbindungen für jeden Domain-Namen, Port usw. repräsentieren ‚Platzhalter‘ Bindungen hinzuzufügen; und ändern Sie dann ich die beiden Parameter-Dateien, diese Bindungen mit den realen zu ersetzen.

Aber für mich fühlt sich dies völlig falsch -, dass die Inszenierung Box Modellierung würde zu Anzug der Live-Einsatz; es sollte anders herum sein.

Ist es möglich, tatsächlich in Website-Bindungen mit MSDeploy (wenn ja, wie?), Oder tut es nur Unterstützung Ersatz?

War es hilfreich?

Lösung

Nach viel Headbanging, scheint es, dass es keine Möglichkeit gibt, neue Bindungen fügen mit dem DestinationBinding Betrieb mit MSDeploy.

Was möglich wäre, wäre ein Skript anhängen nach der Bereitstellung ausgeführt werden, die die Bindungen jedes Mal mit appcmd erstellt.

So wird die anfängliche Synchronisation über MSDeploy diese Bindungen entfernen würde (weil sie nicht auf den Staging-Server sind), aber das appcmd Skript würde sich dann wieder hinzufügen.

Nicht wirklich eine ideale Lösung, wenn es, wie es ist noch ein weiteres Skript, das auf dem neuesten Stand gehalten werden muss auf.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top