摘要:[IIS] 在 IIS6 上執行 Silverlight
在 Windows Server 2003 平台使用 IIS6 架設 Silverlight 網站時遇到了網站執行不起來,並不是沒有畫面,而是只要網頁想要存取 WCF 時就會有問題,於是我先確認資料庫是否正常運作、還是 WebConfig 是否打錯了,確認 WCF 是否有成功啟動…。
於是我遇到瀏覽器送給我 404 的字樣。有幾件事情該做
※檢查.NET Framework 版本
IIS6 是否有符合 Silverlight 版本的.Net Framework,以我的例子必須是.Net 4.0,請把網站的 ASP.NET 選為 4.0.30319,沒得選的話就先安裝 (必須是 4.0 完整版本)。
http://www.microsoft.com/en-us/download/details.aspx?id=17718
※設定 MIME 類型
在 IIS6 裡面還沒有 XAP 宣告類型,請依照需求加入下列幾個類型
.xap application/x-silverlight-app
.xaml application/xaml+xml
.xbap application/x-ms-xbap
※確認啟動 WCF
在我的例子當中這個是最主要造成網頁無法正常執行的問題,當我在瀏覽器中輸入 WCF 網址路徑時呈現的是 404 not found
使用命令提示字元執行 iisext.vbs,列出檔案,看看 ISAPI 是否啟動 Silverlight 所需啟動網頁服務延伸檔案
cscript c:\WINDOWS\system32\iisext.vbs /ListFile |
Microsoft (R) Windows Script Host Version 5.6
Copyright (C) Microsoft Corporation 1996-2001. All rights reserved
正在連線到伺服器... 完成。
Status / Extension Path
------------------------
0 *.dll
0 *.exe
0 C:\WINDOWS\system32\inetsrv\asp.dll
0 C:\WINDOWS\system32\inetsrv\httpodbc.dll
0 C:\WINDOWS\system32\inetsrv\ssinc.dll
0 C:\WINDOWS\system32\inetsrv\httpext.dll
0 C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll
我們看到 aspnet_isapi.dll 的狀態是 0,接著要將它啟動
cscript c:\WINDOWS\system32\iisext.vbs /EnFile C:\WINDOWS\Microsoft.NET\Framework\v4.0.30319\aspnet_isapi.dll |
回到瀏覽器中重新整理,如果出現以下這頁至少可以確定您的 WCF 是可以正常執行的