2012-07-14 5 views
5

Ich benutze Rake und Albacore, um meine .net ASP MVC Projekt zu erstellen, aber einen Teil, den ich bisher nicht automatisieren konnte, ist die Bereitstellung des erstellten Projekts in IIS. Momentan erhalte ich auf Entwicklern die Entwickler, um die Websites manuell zu erstellen und sie mit einem freigegebenen Ausgabeordner zu verknüpfen, der vom Build generiert wird.Erstellen IIS-Website mit Rake

Aber jetzt, da wir unsere CI-Box einrichten (Teamcity) muss ich die Einrichtung der Website zu IIS automatisieren, gibt es also irgendwelche Rake-Aufgaben, die eine Website auf IIS erstellen können? Ich erinnere mich, dass ich vor einiger Zeit etwas gesehen habe, aber ich kann es nicht finden.

Ich kann die IIS 6 Metascripting-Sachen installieren (ich kann mich nicht an ihren genauen Namen erinnern) und alle anderen iis-Plugins, die Box läuft derzeit mit IIS 7.5.

== == Bearbeiten

Der, den ich sehen, erinnern vor einiger Zeit war InetMgr (https://github.com/typesafe/inetmgr), die ein wenig instabil scheint und für mich nicht funktioniert, aber scheint nicht weiter unterstützt zu werden.

Antwort

6

nicht die besten Antworten, aber wie ich nichts einfacher als das vorgeschlagene Verfahren finden konnte unter ich etwas gerade geschrieben haben mit mir appcmd:

def create_web_site(site_name, site_location, site_port) 
    delete_command = "#{$file["appcmd"]} delete site #{site_name}" 
    result = system delete_command 
    puts "Failed to delete site on IIS: #{$?}" unless result 

    add_command = "#{$file["appcmd"]} add site /name:#{site_name} /bindings:http/*:#{site_port}: /physicalPath:#{site_location}" 
    result = system add_command 
    raise "Failed to add site on IIS: #{$?}" unless result 

    set_app_pool_command = "#{$file["appcmd"]} set app #{site_name}/ /applicationPool:\"ASP.NET v4.0\"" 
    result = system set_app_pool_command 
    raise "Failed to bind site to .net 4 app pool on IIS: #{$?}" unless result 

    start_site_command = "#{$file["appcmd"]} start site #{site_name}" 
    result = system start_site_command 
    raise "Failed to start site on IIS: #{$?}" unless result 
end 

$file["appcmd"] in der oben ist eine globale Dateisuche, um nach meinem Skripte erstellen, das ist c:/windows/system32/inetsrv.

Ich würde gerne eine bessere Lösung finden, wenn jemand auf eine schönere Art und Weise dies zu tun, fügt die Antwort und ich werde die richtige Antwort ändern, wenn es besser ist. Die einzigen 2 Bibliotheken, die ich dafür gefunden habe, waren delphin deploy und das iis-Rake-Skript von 7 digital, von denen keine gut dokumentiert zu sein scheint.

1

Ich schlage vor, Sie überprüfen Capistrano. Capistrano ist ein Deployment "Framework" für Ruby/Rails/... Anwendungen. Schauen Sie sich getting started Teile der Dokumentation an und schauen Sie sich dann dieses "Tutorial" an, wie Sie es auf Windows Server with Capistrano bereitstellen können.

+0

Entschuldigung, ich war nicht explizit genug, dass es ein .net-Projekt mit asp mvc, wird die Frage ändern, um dies zu umfassen. – Grofit