2015-03-12 13 views
10

Lưu ý: sử dụng mỗi dòng một!Cách dừng/khởi động từ xa một hồ bơi ứng dụng trong IIS 8

Tôi đã có các lệnh này để sử dụng trong IIS 6 và chúng hoạt động tốt.

bắt đầu:

(get-wmiobject -namespace 'root\MicrosoftIISv2' -computername 'REMOTE_SERVER' -class 'IIsApplicationPool' | where-object {$_.Name -eq 'W3SVC/AppPools/MY_FANCY_APPPOOL'}).InvokeMethod('Stop', $null)" 

-and-

Stop:

(get-wmiobject -namespace 'root\MicrosoftIISv2' -computername 'REMOTE_SERVER' -class 'IIsApplicationPool' | where-object {$_.Name -eq 'W3SVC/AppPools/MY_FANCY_APPPOOL'}).InvokeMethod('Start', $null) 

Tôi đang tìm một sự thay thế trong IIS 8. Tôi cần một vài một -liners và họ phải là lệnh Powershell. Tôi đang gọi chúng thông qua hoạt động InvokePowerShellCommand trong TFS. Có ai ngoài kia có thể giúp tôi không?

+0

Bạn không nên rối tung với các nhóm ứng dụng như một phần của quá trình xây dựng của mình. Triển khai là một mối quan tâm riêng biệt từ xây dựng - sử dụng một công cụ quản lý phát hành cho mục đích này. Việc mở rộng quá trình xây dựng để triển khai thường rất đau đớn và không linh hoạt. –

Trả lời

16

Bạn có thể làm như sau để bắt đầu hồ bơi ứng dụng của bạn:

Invoke-Command -ComputerName "REMOTE_SERVER" -ScriptBlock { Start-WebAppPool -Name "MY_FANCY_APPPOOL" } 

Bạn có thể làm như sau để ngăn chặn hồ bơi ứng dụng của bạn:

Invoke-Command -ComputerName "REMOTE_SERVER" -ScriptBlock { Stop-WebAppPool -Name "MY_FANCY_APPPOOL" } 
+1

Bạn có phải 'Import-Module' trước khi chạy' Stop-WebAppPool' không? Tôi đã có vấn đề với các lệnh này làm việc ngay cả khi IIS đã được cài đặt. – Pred

+0

Tôi không thể kiểm tra ngay bây giờ nhưng tôi đoán bạn phải bật quản trị từ xa IIS trên REMOTE_SERVER trước. –

+2

@Pred yes, thêm phần này vào đầu ScriptBlock: Import-Module WebAdministration; – DonBecker

3

Để bắt đầu, đôi khi bạn cần phải thêm một rõ ràng chờ đợi để các hồ bơi ứng dụng đáp ứng để kiểm soát thông điệp:

Invoke-Command -ComputerName "$REMOTE_SERVER" -ScriptBlock { Import-Module WebAdministration; Start-Sleep -s 10; Start-WebAppPool -Name "$APP_POOL_NAME" } 

Và để ngăn chặn:

Invoke-Command -ComputerName "$REMOTE_SERVER" -ScriptBlock { Import-Module WebAdministration; Stop-WebAppPool -Name "$APP_POOL_NAME" } 
Các vấn đề liên quan