設定Docker 內IIS的Application Pool參數

Edward Kuo
Sep 11 · 6 min read
Image for post
Image for post

通常建置Web Site後,要讓Web Site運行好一點時候,我們就不得不針對IIS Application Pool進行優化的設定。雖然,大多在Docker運行很多都會用ASP.NET Core搭配Hosting啟動。但有些情況還是會在Docker內搭配IIS使用,這時候就要來優化Application Pool

我們可以優化Docker內的Application Pool,這邊可以用兩種方式,一種是直接從Dockerfile操作,一種就是透過CD方式來操作

Dockerfile 方案

要使用Dockerfile方式,就必須採用 的命令方式去設定Application Pool,其命令方式如下:

  • ApplicationPool Name:放入要設定的ApplicationPool Name,如果沒有特別另外設定ApplicationPool Name,預設就會是DefaultAppPool
  • AttributeName:設定ApplicationPool參數名字,其參數名字可以參考 [ Application Pool ] ,如果遇到有階層的參數,像是下圖這樣
Image for post
Image for post

其AttributeName寫法就變成ProcessModel.idleTimeoutAction,就可以了

  • Value: 就直接設定我們想要給的值

以這樣方式,就可以得到下面的範例,而把這些直接填寫到DockerFile就可以

上面寫法內容是設定ApplicationPool的啟動模式、閒置逾時動作、工作處理序數上限、快速失敗保護機制等參數

CD方案

如果不想要在dockerfile直接建立話,也可以透過CD佈署方式從外部方式去設定Docker內的IIS Application Pool.其語法如下

  • DockeServiceName : 要設定的Container的名稱

在使用這指令前必須確認Container內是可以使用PowerShell,而在使用 必須先安裝WebAdministration 模組,所以,使用

如果是分段每次執行設定,類似像下面這樣設定模式,前面都必須要加入Import-Module WebAdministration,

Image for post
Image for post

透過這樣方式就可以在啟動container後,額外設定applicationPool了

查詢Docker內Application Pool設定

要查詢設定其語法可以這樣用,首先必須先登入Docker內,這樣會比較好操作,要在外部操作Docker也是可以,只是語法就比較長一點

這樣就能知道目前Container IIS的設定

參考資料

EK.Technology Learn

Design,Thinking,Coding & have fun every thing

Medium is an open platform where 170 million readers come to find insightful and dynamic thinking. Here, expert and undiscovered voices alike dive into the heart of any topic and bring new ideas to the surface. Learn more

Follow the writers, publications, and topics that matter to you, and you’ll see them on your homepage and in your inbox. Explore

If you have a story to tell, knowledge to share, or a perspective to offer — welcome home. It’s easy and free to post your thinking on any topic. Write on Medium

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store