通常在新的環境,發布ASP.NET網頁到 wwwroot 之後

最常見的異常狀況有兩種:

  1. IIS 空白畫面
  2. 處理常式 “PageHandlerFactory-Integrated” 的模組清單中有錯誤的模組 “ManagedPipelineHandler”

這裡針對這兩種方式來進行說明,如何解決

[IIS空白]

IIS 空白通常是靜態網頁選項未設定

因此,先開啟控制台 > 程式集 點選 解除安裝程式

IIS 空白畫面

接著點選 開啟或關閉windows功能

IIS 空白畫面

在功能選項中,將 Internet Information Services > World Wide Web 服務 > 靜態內容 勾選

IIS 空白

接著再開啟畫面,看看是否還是空白

IIS 空白 - 在勾選靜態內容後,畫面仍是空白該如何處理

首先,在wwwroot目錄新增一個 index.html ,我們放入簡單的顯示文字

index.html

<!DOCTYPE html>
<html>
<head>
	<title>Hello world</title>
</head>
<body>
Hello world
</body>
</html>

若有在畫面中看到 Hello World,就表示靜態內容已經能正常運作瞜

可以刪除 index.html ,重新發布看看是否已經正常

若 ASP.NET 發布仍出現白畫面問題,則試試接下來得解決方式

[ASP.NET 發布仍出現白畫面 或 出現處理常式 “PageHandlerFactory-Integrated” 的模組清單中有錯誤的模組 “ManagedPipelineHandler”]

為了釐清狀況,我們先使用最基本的 web form 網頁,在 Default.aspx 內部加入簡單的文字

Default.aspx

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>

<!DOCTYPE html>

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
        <div>
            <h1>Hello world</h1>
        </div>
    </form>
</body>
</html>

發布之後,若出現下方畫面中的錯誤訊息,原因就是在ASP.NET 4.0 之後版本,必須在IIS也安裝.NET Framework 4.0

如果是獨立安裝 .NET Framework 4.0 再啟動IIS,就可能會發生這個錯誤,原因是IIS仍未取得該項更新

解決辦法:

使用管理員權限開啟命令式窗

接著切換目錄到

C:/Windows/Microsoft.NET/Framework64/v4.0.3.0.319

接著執行語句【aspnet_regiis -i】

C:/Windows/Microsoft.NET/Framework64/v4.0.3.0.319>aspnet_regiis -i

如畫面所示

若出現 安裝完成 ASP.NET <4.0.3.0.318.0>。就安裝完成瞜