案例:在 IIS 上建置傳統 ASP 網站
此文件會引導您安裝 IIS 和設定傳統 ASP 網站。 傳統 ASP 是可用來建立及執行動態 Web 應用程式的伺服器端指令碼環境。 您可以使用 ASP 來結合 HTML 頁面、指令碼命令和 COM 元件,以建立易於開發和修改的互動式網頁。 傳統 ASP 是 ASP.NET 的前身,但目前仍廣為使用。
傳統 ASP 伺服器設定會將 ASP 和 ISAPI 延伸的 IIS 模組新增至預設 IIS 安裝。
必要條件
若要充分利用本教學課程,您必須能夠存取執行下列其中一個操作系統的計算機:
- Windows Server® 2012
- Windows® 8
步驟 1:安裝 IIS 網頁伺服器
您可以使用 Windows 使用者介面 (UI) 或從命令行執行此程式。
使用UI在 Windows Server 2012 上安裝 IIS
在 [開始] 頁面上按一下 [伺服器管理員] 磚,然後按一下 [確定] 。
在 [伺服器管理員] 中選取 [儀表板] ,然後按一下 [新增角色及功能] 。
在 [新增角色及功能精靈] 的 [在您開始前] 頁面上,按 [下一步] 。
在 [選取安裝類型] 頁面上,選取 [角色型或功能型安裝] ,然後按 [下一步]
在 [選取目的地伺服器] 頁面上,選取 [從伺服器集區選取伺服器] ,選取您的伺服器,然後按 [下一步] 。
在 [選取伺服器角色] 頁面上,選取 [網頁伺服器 (IIS)] ,然後按 [下一步] 。
在 [選取功能] 頁面上檢查依預設安裝的預先選取功能,然後選取下列其他角色服務:
- ASP
- ISAPI 擴充程式
按一下 [下一步] 。
在 [網頁伺服器 (IIS) 角色] 頁面上,按一下 [下一步] 。
在 [選取角色服務] 頁面上檢查依預設安裝的預先選取角色服務,然後按 [下一步] 。 (注意:您只需要安裝靜態內容網頁伺服器的 IIS 8 預設角色服務。
在 [確認安裝選項] 頁面上確認您的選項,然後按一下 [安裝] 。
在 [安裝進度] 頁面上,確認網頁伺服器 (IIS) 角色和必要角色服務的安裝順利完成,然後按一下 [關閉] 。
若要確認 IIS 已成功安裝,請在網頁瀏覽器中輸入下列命令:
http://localhost
您應該會看到預設的 IIS [歡迎使用] 頁面。
使用UI在 Windows 8 上安裝 IIS
在 [開始] 頁面上輸入 [控制台] ,然後在搜尋結果中按一下 [控制台] 圖示。
在 [控制台] 中按一下 [程式集] ,然後按一下 [開啟或關閉 Windows 功能] 。
在 [Windows 功能] 對話方塊中按一下 [Internet Information Services] ,檢查依預設安裝的預先選取功能,然後選取下列其他角色服務:
- ASP
- ISAPI 擴充程式
按一下 [確定]。
若要確認 IIS 已成功安裝,請在網頁瀏覽器中輸入下列命令:
http://localhost
您會看到預設的 IIS [歡迎使用] 頁面。
使用命令列安裝 IIS
在命令提示字元或指令碼中輸入下列命令:
Start /w pkgmgr /iu:IIS-WebServerRole;IIS-WebServer;IIS-CommonHttpFeatures;IIS-StaticContent;IIS-DefaultDocument;IIS-DirectoryBrowsing;IIS-HttpErrors;IIS-ApplicationDevelopment;IIS-ASP;IIS-ISAPIExtensions;IIS-HealthAndDiagnostics;IIS-HttpLogging;IIS-LoggingLibraries;IIS-RequestMonitor;IIS-Security;IIS-RequestFiltering;IIS-HttpCompressionStatic;IIS-WebServerManagementTools;IIS-ManagementConsole;WAS-WindowsActivationService;WAS-ProcessModel;WAS-NetFxEnvironment;WAS-ConfigurationAPI
步驟 2:新增傳統 ASP 網站
您可以透過使用者介面 (UI)、在命令列視窗中執行 Appcmd.exe 命令、直接編輯設定檔,或撰寫 WMI 指令碼,來執行此程序。
使用 UI 新增網站
開啟 [IIS 管理員]。
- 針對 Windows Server 2012,在 [開始] 頁面上,按兩下 [伺服器管理員] 圖格,然後按兩下 [確定]。 在 [伺服器管理員儀表板] 上按一下 [工具] 功能表,然後按一下 [Internet Information Services (IIS) 管理員] 。
- 針對 Windows 8,在 [開始] 頁面上輸入 控制台,然後按下搜尋結果中的 控制台 圖示。 在 [控制台] 畫面上,依序按一下 [系統及安全性] 、[系統管理工具] ,然後按一下 [Internet Information Services (IIS) 管理員] 。
在 [連線] 窗格中,以滑鼠右鍵按一下樹狀目錄中的 [網站] 節點,然後按一下 [新增網站] 。
在 [新增網站] 對話方塊的 [網站名稱] 方塊中,為您的網站輸入易記名稱。
如果您想要選取 [應用程式集區] 方塊中所列以外的應用程式集區,請按一下 [選取] 。 在 [選取應用程式集區] 對話方塊中,從 [應用程式集區] 清單中選取應用程式集區,然後按一下 [確定] 。
在 [實體路徑] 方塊中,輸入網站資料夾的實體路徑,或按一下瀏覽按鈕 (...) 來瀏覽檔案系統,以尋找資料夾。
如果您在步驟 5 中輸入的是遠端共用的實體路徑,請按一下 [連線身分] ,以指定有權存取該路徑的認證。 如果您不使用特定認證,請在 [連線身分] 對話方塊中選取 [應用程式使用者 (通過驗證)] 。
從 [類型] 清單中選取網站的通訊協定。
[IP 位址] 方塊中的預設值是 [全部解除指派] 。 如果您必須為網站指定靜態 IP 位址,請在 [IP 位址] 方塊中輸入 IP 位址。
在 [連接埠] 文字方塊中輸入連接埠號碼。
(選擇性) 在 [主機標頭] 方塊中輸入網站的主機標頭名稱。
如果您不需要對網站進行任何變更,並且想讓網站立即可用,請選取 [立即啟動網站] 核取方塊。
按一下 [確定]。
使用命令列新增網站
在命令提示字元或文稿中使用下列語法:(注意:若要讓此語法能夠運作,您必須位於下列目錄中,或在您的路徑中具有 目錄: %windir%\system32\inetsrv
.)
appcmd add site /name:string /id:uint /physicalPath:string /bindings:string
變數 name:string
是名稱,而變數 id:uint
是您要指派給月臺的不帶正負號整數。 變數 name:string
和 id:uint
是您在 Appcmd.exe 中新增網站時所需的唯一變數。 (注意:當您新增網站而不指定系結和 physicalPath 屬性的值時,網站將無法啟動。
變數 physicalPath:string
是檔案系統中網站內容的路徑。
變數 bindings:string
包含用來存取網站的資訊,且其格式 protocol/IP_address:port:host_header
應該是 。 例如,網站繫結是通訊協定、IP 位址、連接埠和主機標頭的組合。 的 http/*:85:
系結可讓網站接聽埠 85 上所有 IP 位址和功能變數名稱的 HTTP 要求(也稱為主機標頭或主機名)。 另一方面,的 http/*:85:marketing.contoso.com
系結會設定網站,以接聽埠 85 上所有IP位址的 HTTP 要求,以及功能變數名稱 marketing.contoso.com。
若要新增 contoso
標識碼為 2 且識別碼 c:\contoso
為 2 的網站,並在埠 85 上接聽所有 IP 位址和功能變數名稱 marketing.contoso.com
的 HTTP 要求,請在命令提示字元中輸入下列命令,然後按 ENTER:
appcmd add site /name: contoso /id:2 /physicalPath: c:\contoso /bindings:http/*:85: marketing.contoso.com
步驟 3:編輯 ASP 應用程式設定
IIS 8 提供 ASP 應用程式的預設設定,但您可以視需要變更這些設定。 例如,您可以在測試伺服器上啟用用戶端偵錯,以利在測試期間進行問題的疑難排解。
使用 UI 編輯 ASP 應用程式設定
- 開啟 IIS 管理員,並流覽至您想要管理的層級。
- 在 [功能檢視] 中,按兩下 [ASP] 。
- 在 [ASP] 頁面上,編輯所需的設定。
- 完成之後,在 [動作] 窗格中按一下 [套用] 。
使用命令列編輯 ASP 應用程式設定
指定預設字元集
若要為應用程式指定預設字元集,請使用下列語法:
appcmd set config /section:asp /codePage:integerRange
變數 integerRange
是預設字元集。 例如,若要將字碼頁設定為美式英文和許多歐洲字母所使用的拉丁字元集,請在命令提示字元中輸入下列命令,然後按 Enter 鍵:
appcmd set config /section:asp /codePage:1252
啟用或停用緩衝處理
若要啟用或停用 ASP 應用程式輸出的緩衝處理,請使用下列語法:
appcmd set config /section:asp /bufferingOn:true|false
的值 true
會啟用緩衝處理,而 false
會停用緩衝處理。 預設值是 true
。
啟用或停用 HTTP 1.1 區塊傳輸編碼
若要為 World Wide Web Publishing 服務啟用 HTTP 1.1 區塊傳輸編碼,請使用下列語法:
appcmd set config /section:asp /enableChunkedEncoding:true|false
的值 true
會啟用 HTTP 1.1 區塊傳輸編碼,同時 false
停用 HTTP 1.1 區塊傳輸編碼。 預設值是 true
。
啟用或停用 HTML 遞補
若要啟用或停用 HTML 遞補,請使用下列語法:
appcmd set config /section:asp /enableASPHTMLFallback:true|false
值 true
會導致.htm檔案的名稱與要求.asp檔案相同,如果檔案存在,則會因為完整要求佇列而拒絕要求,而不是傳送.asp檔案。 預設值是 true
。
啟用或停用上層路徑
若要啟用或停用相對於目前目錄或位於目前目錄上方的路徑,請使用下列語法:
appcmd set config /section:asp /enableParentPaths:true|false
的值 true
會設定 ASP 頁面,以允許相對於目前目錄或高於目前目錄的路徑。 預設值是 true
。
設定用戶端連線測試間隔
若要設定一個時間間隔,讓 ASP 在該間隔經過後檢查用戶端是否仍連線 (在執行要求之前),請使用下列語法:
appcmd set config /section:asp /queueConnectionTestTime:timeSpan
timeSpan
變數會設定時間間隔 (hh:mm:ss),之後 ASP 會檢查用戶端在執行要求之前是否仍已連線。 預設值是 00:00:03
。
設定要求實體主體的上限
若要指定 ASP 要求的實體主體中允許的位元組數目上限,請使用下列語法:
appcmd set config /section:asp /maxRequestEntityAllowed:int
變數 int
代表 ASP 要求主體中允許的最大位元元數目。 預設值為 200000
位元組。
設定要求佇列長度
若要指定允許進入佇列的並行 ASP 要求數目上限,請使用下列語法:
appcmd set config /section:asp /requestQueueMax:int
變數 int
代表允許進入要求佇列的並行 ASP 要求數目上限。 預設值是 3000
。
設定要求佇列逾時
若要指定 ASP 要求可在要求佇列中等候的期間,請使用下列語法:
appcmd set config /section:asp /queueTimeout:timeSpan
變數 timeSpan
代表 ASP 要求可以在要求佇列中等候的最大時間 (hh:mm:ss)。 預設值是 00:00:00
。
指定回應緩衝處理限制
若要控制 ASP 頁面在排清發生之前可寫入至回應緩衝區的位元組數目上限,請使用下列語法:
appcmd set config /section:asp /bufferingLimit:int
變數 int
代表 ASP 緩衝區的大小上限,以位元組為單位。 預設值為 4194304
位元組。
設定指令碼逾時
若要指定 ASP 頁面在終止指令碼並將事件寫入至 Windows 事件記錄檔之前可讓指令碼執行的時間長度,請使用下列語法:
appcmd set config /section:asp /scriptTimeout:timeSpan
timeSpan
變數代表 ASP 要求可以在事件寫入 Windows 事件記錄檔之前執行的最大時間 (hh:mm:ss)。 預設值是 00:01:30
。
指定每一處理器的執行緒限制
若要指定 ASP 可為每個處理器建立的背景工作執行緒數目上限,請使用下列語法:
appcmd set config /section:asp /processorThreadMax:int
變數 int
代表 ASP 可以建立的每個處理器的背景工作線程數目上限。 預設值是 25
。
指定預設地區設定識別碼
若要定義為 ASP 應用程式如何格式化日期、時間和貨幣的方式,請使用下列語法:
appcmd set config /section:asp /lcid:int
變數 int
代表 ASP 應用程式的預設地區設定識別碼。 預設值是 0
。
啟用或停用自動應用程式重新啟動
若要啟用或停用在組態設定變更時自動重新啟動 ASP 應用程式的功能,請使用下列語法:
appcmd set config /section:asp /enableApplicationRestart:true|false
的值 true
可讓 ASP 應用程式在變更組態設定時自動重新啟動。 預設值是 true
。
啟用或停用行號計算
若要啟用或停用 ASP 針對每個已執行的程式碼行計算並儲存行號以在錯誤報告中提供號碼的功能,請使用下列語法:
appcmd set config /section:asp /calLineNumber:true|false
的值 true
可啟用行號計算和記憶體。 預設值是 true
。
啟用或停用 COM 元件的例外狀況設陷
若要啟用或停用讓 ASP 頁面捕捉 COM 元件所擲回之例外狀況的功能,請使用下列語法:
appcmd set config /section:asp /exceptionCatchEnable:true|false
的值 true
會啟用 COM 元件例外狀況截獲。 如果設定為 false
,則 Microsoft 腳本調試程式工具不會攔截您正在偵錯之元件所傳送的例外狀況。 預設值是 true
。
啟用或停用用戶端偵錯
若要啟用或停用用戶端偵錯,請使用下列語法:
appcmd set config /section:asp /appAllowClientDebug:true|false
的值 true
會啟用客戶端偵錯。 預設值是 false
。
啟用或停用記錄錯誤要求
若要啟用或停用將 ASP 錯誤寫入至 Windows 事件記錄檔之應用程式區段的功能,請使用下列語法:
appcmd set config /section:asp /logErrorRequests:true|false
的值 true
會啟用記錄錯誤要求。 根據預設,ASP 錯誤會寫入至用戶端瀏覽器和 IIS 記錄檔。 預設值是 true
。
啟用或停用 ASP 錯誤的 Windows 事件記錄
若要啟用或停用伺服器上的 ASP 偵錯,請使用下列語法:
appcmd set config /section:asp /appAllowDebugging:true|false
的值 true
會啟用 ASP 應用程式的伺服器端偵錯。 預設值是 false
。
以匿名方式執行 On End 函數
若要啟用或停用 SessionOnEnd
和 ApplicationOnEnd
全域 ASP 函式以匿名使用者身分執行,請使用下列語法:
appcmd set config /section:asp /runOnEndAnonymously:true|false
的值 true
可讓 SessionOnEnd
和 ApplicationOnEnd
全域 ASP 函式以匿名使用者身分執行。 預設值是 true
。
指定指令碼錯誤訊息
若要指定在特定偵錯錯誤未傳送至用戶端時將錯誤訊息傳送至瀏覽器的功能,請使用下列語法:
appcmd set config /section:asp /scriptErrorMessage:string
變數 string
代表當特定偵錯錯誤未傳送至用戶端時,傳送至瀏覽器的錯誤訊息。 預設值是「處理 URL 時伺服器發生錯誤。 請連絡您的系統管理員」。
啟用或停用傳送錯誤至瀏覽器的功能
若要啟用或停用在記錄到 Windows 事件記錄檔以外,還要將偵錯詳細資料 (檔案名稱、錯誤、行號和描述) 寫入至用戶端瀏覽器的功能,請使用下列語法:
appcmd set config /section:asp /scriptErrorSentToBrowser:true|false
的值 true
可讓您撰寫用戶端瀏覽器的偵錯細節。 預設值是 false
。
指定預設指令碼語言
若要為所有在網頁伺服器上執行的 ASP 應用程式指定預設指令碼語言,請使用下列語法:
appcmd set config /section:asp /scriptLanguage:string
變數 string
代表預設文本語言。 預設值是 VBScript
。
指定快取目錄路徑
若要指定 ASP 在記憶體中快取溢位時儲存已編譯之 ASP 範本的目錄名稱,請使用下列語法:
appcmd set config /section:asp /diskTemplateCacheDirectory:string
變數 string
代表快取目錄路徑。 預設值是 %windir%\system32\inetsrv\ASP Compiled Templates
。
啟用或停用型別程式庫快取
若要啟用或停用型別程式庫的快取,請使用下列語法:
appcmd set config /section:asp /enableTypelibCache:true|false
的 值 true
會啟用型別連結庫的快取。 預設值是 true
。
設定可儲存的已編譯 ASP 範本數目上限
若要設定可儲存的已編譯 ASP 範本數目上限,請使用下列語法:
appcmd set config /section:asp /maxDiskTemplateCacheFiles:int
變數 int
代表要儲存的已編譯 ASP 範本數目上限。 預設值是 2000
。
設定可儲存的已編譯 ASP 範本數目上限
若要設定可快取的先行編譯指令碼檔案的數目上限,請使用下列語法:
appcmd set config /section:asp /scriptFileCacheSize:int
變數 int
代表要快取的先行編譯腳本檔案數目。 如果設定為 0,則不會快取任何指令碼檔案。 如果設定為 4294967295
,則會快取所有要求的腳本檔案。 預設值是 500
。
設定要快取的指令碼引擎數目上限
若要設定 ASP 頁面可快取在記憶體中的指令碼引擎數目上限,請使用下列語法:
appcmd set config /section:asp /scriptEngineCacheMax:int
變數 int
代表快取的腳本引擎數目上限。 預設值是 250
。
啟用或停用 COM + 並存組件
若要啟用或停用並存 COM+ 組件 (可讓 ASP 應用程式指定要使用哪個版本的系統 DLL 或傳統 COM 元件),請使用下列語法:
appcmd set config /section:asp /appServiceFlags:true|false
的值 true
會啟用 COM+ 並存元件。 預設值是 false
。
啟用或停用 COM+ 追蹤器
若要啟用或停用 COM+ 追蹤器,請使用下列語法:
appcmd set config /section:asp /enableTypelibCache:true|false
的值 true
可讓 COM+ 追蹤器,讓系統管理員或開發人員偵錯 ASP 應用程式。 預設值是 false
。
啟用或停用多執行緒環境
若要啟用或停用 ASP 在多執行緒環境中執行的功能,請使用下列語法:
appcmd set config /section:asp /executeInMta:true|false
的值 true
可讓 ASP 在多線程環境中執行。 預設值是 false
。
啟用或停用的執行緒模型檢查
若要啟用或停用 IIS 對您的應用程式所建立的任何元件檢查執行緒模型的功能,請使用下列語法:
appcmd set config /section:asp /trackThreadingModel:true|false
的值 true
會啟用線程模型檢查。 預設值是 false
。
指定 COM+ 磁碟分割識別碼
若要指定 COM+ 磁碟分割的全域唯一識別碼 (GUID),請使用下列語法:
appcmd set config /section:asp /partitionID:string
變數 string
代表 COM+ 分割區的 GUID。 預設值是 00000000-0000-0000-0000-000000000000
。
注意
您必須將 appServiceFlags
旗標設定為 true
。
指定 COM+ 應用程式
若要指定 COM+ 應用程式的名稱,請使用下列語法:
appcmd set config /section:asp /sxsName:string
變數 string
代表 COM+ 應用程式的名稱。
注意
您必須將 appServiceFlags
旗標設定為 true
。
啟用或停用 COM+ 分割
若要啟用或停用 COM+ 分割,請使用下列語法:
appcmd set config /section:asp /appServiceFlags:true|false
的值 true
可啟用 COM+ 資料分割,可用來隔離自己的 COM+ 分割區中的應用程式。 預設值為 false。
注意
如果設定為 true
,您也必須設定 屬性的值 partitionID
。
啟用或停用工作階段狀態
若要啟用或停用 ASP 應用程式的工作階段狀態持續性,請使用下列語法:
appcmd set config /section:asp /allowSessionState:true|false
的值 true
可啟用會話狀態持續性。 預設值是 true
。
設定並行工作階段的數目上限
若要設定 ASP 允許的並行工作階段數目上限,請使用下列語法:
appcmd set config /section:asp /max:int
變數 int
代表並行會話的數目上限。 預設值是 -1
。
啟用或停用安全工作階段識別碼
若要啟用或停用在透過安全工作階段通道指派時以安全 Cookie 的形式傳送工作階段識別碼的功能,請使用下列語法:
appcmd set config /section:asp /keepSessionIdSecure:true|false
的值 true
會啟用安全的會話標識碼。 預設值是 true
。
設定工作階段逾時
若要指定在上一個與工作階段物件相關聯的要求發出之後維護該物件的預設時間,請使用下列語法:
appcmd set config /section:asp /timeout:timeSpan
變數 timeSpan
代表會話物件在提出與對象相關聯之最後一個要求之後所維護的最大時間 (hh:mm:ss)。 預設值是 00:20:00
。
後續步驟
徹底測試您的網站以確保其運作符合預期。 然後考慮設定下列功能:
- 若要對您的網頁伺服器進行疑難排解或效能最佳化,請設定 IIS 記錄。 如需指示,請參閱 Configure Logging in IIS。
- 若要改善網頁伺服器的安全性,請設定要求篩選。 如需指示,請參閱 Configure Request Filtering in IIS。