關於IIS部署動態頁面的配置問題

  一般咱們在項目開發結束後向服務器部署站點後,站點的動態頁面未能按照預期進行訪問,這頗有多是IIS沒有註冊動態頁面相應的「可執行文件」致使。這裏所說的動態頁面例如:訪問MVC視圖、WebAPIaspxashx等,也就是頁面會對應有dll文件的狀況。 windows

動態頁面訪問失敗的幾種場景瀏覽器

ashx(通常處理程序):服務器

 

WebAPI:spa

問題排查

若是說在咱們部署動態頁面後沒法訪問,咱們能夠試着排查IIS操作系統

具體步驟以下:命令行

1.打開IIS管理器選中對應的站點,在窗體主界面找到「處理程序映射」並雙擊打開。3d

 

2.在展開的列表中查找是否有包含咱們要訪問的文件類型。列表參考如圖:orm

若是列表沒有包含咱們要訪問的文件類型,咱們須要爲IIS註冊安裝一些東西。blog

 

解決辦法(根據操做系統二選一):

1.win10以前的操做系統可在VS安裝目錄,例如:(\VS2013\Common7\Tools\Shortcuts

)裏打開VS2013 開發人員命令提示」,而後在命令行中輸入:aspnet_regiis -i開發

 

 

2.win10系統不支持使用命令行,須要打開控制面板——>程序和功能——>啓動和關閉windows功能,打開窗口後點擊 Internet Information services節點勾選「應用程序開發功能」下的全部子節點,而後點擊肯定進行安裝。配置選項如圖:

 

問題分析

  有了解決方案後咱們能夠思考下問題引起的緣由。

  當請求發到服務器,IIS會先作一個處理:根據請求的文件類型進行判斷,若是發現瀏覽器請求的是動態文件,IIS會將請求的動態頁面經過一個「可執行文件」解析後轉交給.Net Framework來執行,當.NetFramework執行完後在把執行的結果由IIS在返回給瀏覽器。由於IIS自身是沒法處理動態文件的,動態文件中都是程序語言寫的代碼IIS自身不具有解析能力。

  上述的解決辦法就是去經過註冊安裝從而使IIS服務器擁有這些「可執行文件」,而後根據不一樣的動態頁面類型自動配置處理「可執行文件」映射關係。咱們能夠在IIS管理器的「處理程序映射」界面查看列表中的一項,其中動態頁面類型都對應了一個「可執行文件」。如圖:

 

 

  出現問題的狀況:可能由於IIS安裝配置選項問題,或者先安裝.NetFramework後安裝IIS等狀況,都會致使IIS沒有註冊這些「可執行文件」,從而致使沒法解析相應的動態頁面。因此咱們在服務器安裝IIS時要考慮並注意這個細節。

  IIS處理動態頁面的簡易交互圖:

 

 

 

 

感想:不要爲了解決問題而忽略引起問題的緣由,只有當咱們深入分析問題才能舉一反三,達到知行合一。

相關文章
相關標籤/搜索