2012-07-14 4 views
5

rake와 albacore를 사용하여 .net ASP MVC 프로젝트를 만들었지 만 지금까지 자동화 할 수 없었던 부분은 IIS에 빌드 된 프로젝트를 배포하는 것입니다. 현재 개발자 머신에서는 개발자가 수동으로 웹 사이트를 만들고 빌드에 의해 생성 된 출시 된 출력 폴더에 연결합니다.레이크를 사용하여 IIS 웹 사이트 만들기

그러나 우리는 CI 상자 설정 (Teamcity)을 갖기 때문에 IIS에 웹 사이트 설정을 자동화해야하므로 IIS에서 웹 사이트를 만들 수있는 레이크 작업이 있습니까? 나는 잠시 후에 그것을보고 기억하지만 그것을 찾을 수 없습니다.

IIS 6 메타 스크립팅 도구 (정확한 이름 기억 안 함) 및 기타 iis 플러그인을 설치할 수 있으며이 상자는 현재 IIS 7.5를 실행합니다.

== 편집 ==

내가 조금 불안정한 것 나를 위해 작동하지 않는 inetmgr을 (https://github.com/typesafe/inetmgr) 잠시 돌아왔다 본 기억이 하나 있지만, 더 이상 지원되지 않는 것 같습니다.

답변

6

하지 응답의 최고,하지만를 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"]을위한 글로벌 파일 검색 내 빌드 스크립트는 c :/windows/system32/inetsrv입니다.

더 멋진 솔루션을 찾고 싶습니다. 누구나이 답변을 추가하는 좋은 방법을 발견하게되면 정답을 바꿀 것입니다. 내가 찾은 유일한 2 개의 라이브러리는 돌고래 배포와 7 개의 디지털 iis rake 스크립트로, 불행히도 사용법에 대해서는 잘 설명되어 있지 않습니다.

1

Capistrano을 확인해 보시기 바랍니다. Capistrano는 루비/레일/응용 프로그램을위한 "프레임 워크"배포입니다. 설명서의 getting started 부분을 확인한 다음 Windows Server with Capistrano에 배포하는 방법에 대한이 "자습서"를 살펴보십시오. 난 그냥 뭔가를 썼다 아래에 제안 된 방법보다 간단 아무것도 찾을 수 없습니다로 자신

+0

죄송합니다. 미안 해요. asp mvc를 사용하는 .net 프로젝트가 이것을 포함하도록 질문을 변경합니다. – Grofit

관련 문제