通常在新的環境,發布ASP.NET網頁到 wwwroot 之後
最常見的異常狀況有兩種:
- IIS 空白畫面
- 處理常式 “PageHandlerFactory-Integrated” 的模組清單中有錯誤的模組 “ManagedPipelineHandler”
這裡針對這兩種方式來進行說明,如何解決
[IIS空白]
IIS 空白通常是靜態網頁選項未設定
因此,先開啟控制台 > 程式集 點選 解除安裝程式
接著點選 開啟或關閉windows功能
在功能選項中,將 Internet Information Services > World Wide Web 服務 > 靜態內容 勾選
接著再開啟畫面,看看是否還是空白
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>。就安裝完成瞜