5

Tôi đang tạo chương trình cài đặt cho ứng dụng web của mình. Ứng dụng web của tôi sử dụng CSS và JS rất nhiều, vì vậy tôi muốn kích hoạt cả HTTP và Dynamic HttpCompression cho IIS7/7.5.Làm cách nào để bật tính năng DynamicCompression của IIS theo lập trình?

Nó cần 2 bước sau:

  1. tôi có thể sửa đổi web.config, đặt <httpcompression> thẻ, đó là ok.
  2. DynamicContentCompression phải được bật trong Windows Feature để thực hiện công việc httpCompression.

Static HttpCompression được bật theo mặc định trong IIS7 và IIS7.5, nhưng Dynamic HttpCompression không được bật theo mặc định (mặc dù có sẵn). Tôi có thể thực hiện thủ công bằng cách bật: Start/ControlPanel/ProgramsAndFeatures/TurnWindowsFeatures on or Off/IIS/WWW Service/Performance features/Dynamic Content Compression, nhưng Làm cách nào để tôi có thể biến nó theo cách lập trình trên Tính năng Windows đó? Tôi có thể sử dụng PowerShell, C# trong trình cài đặt của mình.

Bất kỳ ý tưởng nào về cách tôi có thể thực hiện việc này? Cảm ơn.

Trả lời

0

Bạn có thể bật tính năng này bằng công cụ appcmd. Từ một dòng lệnh:

C:\windows\system32\inetsrv\appcmd set config /section:urlCompression /doDynamicCompression:True 

Hoặc nếu bạn muốn thực hiện nó từ bên trong một kịch bản PowerShell:

& $env:windir\system32\inetsrv\appcmd set config -section:urlCompression /doDynamicCompression:true 

Bạn sẽ cần quyền quản trị để làm một trong hai.

+0

Cảm ơn Greg, nhưng addcmd đó không phải là 'Bật tính năng Windows' mà tôi cần. –

1

Disclaimer: đây là hoàn toàn chưa được chứng minh và chưa được kiểm tra ....

Greg của câu trả lời ở trên là gần đúng, nhưng đó chỉ mở tính năng cài đặt. Theo mặc định, khi tính năng đó được cài đặt, nó sẽ bị khóa ... tất cả các con đường xuống ở mức máy.

Lý do là vì nén động có thể thực sự frak với CPU của máy chủ. Vì vậy, trong một môi trường lưu trữ, điều này có thể giết chết mọi thứ. Ngay cả với máy chủ chuyên dụng của riêng bạn, nó cũng có thể giết chết mọi thứ. Vì vậy, các tuyến đường an toàn là để khóa nó theo mặc định và chỉ khi bạn biết những gì bạn đang làm, sau đó đi và mở khóa nó.

Vì vậy, việc tìm kiếm google nhanh chóng, i came to this page.

Lưu ý cách bài viết kỹ thuật này có một dòng lệnh thingy để cài đặt tất cả các gói cần thiết cho một máy chủ IIS tĩnh mẫu. Tôi biết câu hỏi của bạn không phải là cho một máy chủ IIS tĩnh ... nhưng nó có thể làm sáng tỏ các lệnh có thể.

Vì vậy, tôi đoán ... có thể điều này? ::

Start /w pkgmgr /iu:IIS-HttpCompressionDynamic 

?? có thể :)

here's another article with more options ...

6

Đây là cách tôi đã làm nó:

dism/học qua mạng/enable-tính năng/featurename: IIS-HttpCompressionDynamic

dism cho phép bạn kiểm tra mã trở lại của lệnh, cho phép bạn xác minh nó hoạt động (hoặc đã được cài đặt)

4

Lệnh PowerShell này sẽ thêm tính năng Nén động.

Import-Module ServerManager 
Add-WindowsFeature Web-Server, Web-Dyn-Compression 

Đừng quên chạy với tư cách quản trị viên hoặc có quyền quản trị viên.

+1

Xin vui lòng cải thiện câu trả lời của bạn –

+0

Điều này làm việc cho tôi trên IIS8 cũng. – nkassis