如何:設定 IIS 5.0 和 IIS 6.0 以部署 WPF 應用程式
只要使用適當的 Multipurpose Internet Mail Extensions (MIME) 類型進行設定,您就可以從大部分網頁伺服器部署 Windows Presentation Foundation (WPF) 應用程式。 根據預設,Microsoft 網際網路資訊服務 (IIS) 7.0 會使用這些 MIME 類型來設定,但 Microsoft 網際網路資訊服務 (IIS) 5.0 和 Microsoft 網際網路資訊服務 (IIS) 6.0 則不是。
本主題描述如何設定 Microsoft 網際網路資訊服務 (IIS) 5.0 和 Microsoft 網際網路資訊服務 (IIS) 6.0 來部署 WPF 應用程式。
注意
您可以檢查 登錄中的 UserAgent 字串,以判斷系統是否已安裝 .NET Framework。 如需詳細資料和檢查 UserAgent 字串以判斷系統上是否已安裝 .NET Framework 的腳本,請參閱 偵測是否已安裝 .NET Framework 3.0。
調整內容到期設定
您應該將內容到期設定調整為 1 分鐘。 下列程式概述如何使用 IIS 來執行這項操作。
按一下 [開始] 功能表,指向 [系統管理工具],然後按一下 [Internet Information Services (IIS) 管理員]。 您也可以從命令列使用 "%SystemRoot%\system32\inetsrv\iis.msc" 來啟動此應用程式。
展開 IIS 樹狀結構, 直到您找到預設網站 節點為止。
以滑鼠右鍵按一下 [預設的網站],然後從操作功能表選取 [屬性]。
選取 [HTTP 標頭] 索引標籤,然後按一下 [啟用內容到期日]。
設定內容於 1 分鐘後過期。
註冊 MIME 類型和副檔名
您必須註冊數個 MIME 類型和副檔名,讓用戶端系統上的瀏覽器可以載入正確的處理常式。 您需要新增下列類型:
副檔名 | MIME 類型 |
---|---|
.manifest | application/manifest |
.xaml | application/xaml+xml |
.application | application/x-ms-application |
.xbap | application/x-ms-xbap |
.deploy | application/octet-stream |
.xps | application/vnd.ms-xpsdocument |
注意
您不需要在用戶端系統上註冊 MIME 類型或副檔名。 當您安裝 Microsoft .NET Framework 時,系統會自動註冊它們。
下列 Microsoft Visual Basic Scripting Edition (VBScript) 範例會自動將必要的 MIME 類型新增至 IIS。 若要使用指令碼,請將程式碼複製到伺服器上的 .vbs 檔案。 然後,從命令列執行檔案,或按兩下 Microsoft Windows 檔案總管中的檔案,以執行腳本。
' This script adds the necessary Windows Presentation Foundation MIME types
' to an IIS Server.
' To use this script, just double-click or execute it from a command line.
' Running this script multiple times results in multiple entries in the IIS MimeMap.
Dim MimeMapObj, MimeMapArray, MimeTypesToAddArray, WshShell, oExec
Const ADS_PROPERTY_UPDATE = 2
' Set the MIME types to be added
MimeTypesToAddArray = Array(".manifest", "application/manifest", ".xaml", _
"application/xaml+xml", ".application", "application/x-ms-application", _
".deploy", "application/octet-stream", ".xbap", "application/x-ms-xbap", _
".xps", "application/vnd.ms-xpsdocument")
' Get the MimeMap object
Set MimeMapObj = GetObject("IIS://LocalHost/MimeMap")
' Call AddMimeType for every pair of extension/MIME type
For counter = 0 to UBound(MimeTypesToAddArray) Step 2
AddMimeType MimeTypesToAddArray(counter), MimeTypesToAddArray(counter+1)
Next
' Create a Shell object
Set WshShell = CreateObject("WScript.Shell")
' Stop and Start the IIS Service
Set oExec = WshShell.Exec("net stop w3svc")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = WshShell.Exec("net start w3svc")
Do While oExec.Status = 0
WScript.Sleep 100
Loop
Set oExec = Nothing
' Report status to user
WScript.Echo "Windows Presentation Foundation MIME types have been registered."
' AddMimeType Sub
Sub AddMimeType (Ext, MType)
' Get the mappings from the MimeMap property.
MimeMapArray = MimeMapObj.GetEx("MimeMap")
' Add a new mapping.
i = UBound(MimeMapArray) + 1
ReDim Preserve MimeMapArray(i)
Set MimeMapArray(i) = CreateObject("MimeMap")
MimeMapArray(i).Extension = Ext
MimeMapArray(i).MimeType = MType
MimeMapObj.PutEx ADS_PROPERTY_UPDATE, "MimeMap", MimeMapArray
MimeMapObj.SetInfo
End Sub
注意
執行此腳本多次會在 Microsoft 網際網路資訊服務 (IIS) 5.0 或 Microsoft 網際網路資訊服務 (IIS) 6.0 中繼基底中建立多個 MIME 對應專案。
執行此腳本之後,您可能看不到 Microsoft 網際網路資訊服務 (IIS) 5.0 或 Microsoft 網際網路資訊服務 (IIS) 6.0 Microsoft Management Console (MMC) 的其他 MIME 類型。 不過,這些 MIME 類型已新增至 Microsoft 網際網路資訊服務 (IIS) 5.0 或 Microsoft 網際網路資訊服務 (IIS) 6.0 中繼基底。 下列腳本會顯示 Microsoft 網際網路資訊服務 (IIS) 5.0 或 Microsoft 網際網路資訊服務 (IIS) 6.0 中繼基底中的所有 MIME 類型。
' This script lists the MIME types for an IIS Server.
' To use this script, just double-click or execute it from a command line
' by calling cscript.exe
dim mimeMapEntry, allMimeMaps
' Get the MimeMap object.
Set mimeMapEntry = GetObject("IIS://localhost/MimeMap")
allMimeMaps = mimeMapEntry.GetEx("MimeMap")
' Display the mappings in the table.
For Each mimeMap In allMimeMaps
WScript.Echo(mimeMap.MimeType & " (" & mimeMap.Extension + ")")
Next
請將指令碼儲存為 .vbs
檔案 (例如 DiscoverIISMimeTypes.vbs
),然後從命令提示字元使用下列命令來執行:
cscript DiscoverIISMimeTypes.vbs
意見反應
https://aka.ms/ContentUserFeedback。
即將登場:在 2024 年,我們將逐步淘汰 GitHub 問題作為內容的意見反應機制,並將它取代為新的意見反應系統。 如需詳細資訊,請參閱:提交並檢視相關的意見反應