將Silverlight佈署到正式機(Windows 2003 Server)上之後無法瀏覽?

讀者反應將撰寫好的Silverlight應用程式佈署到Windows 2003正式機上之後無法瀏覽(看到的是一片空白),但是在開發階段(VS2005)卻都可以。

關於這個問題,筆者在將Silverlight佈署到租用的Hosting時也發生過,其中一個主要的原因是在預設的狀況底下,Win2003 Server並不支援 .xaml 檔案MIME格式。

因此,其實伺服器端無法提供用戶端IE瀏覽器當中所需要的.xaml檔案,使用者看到的自然就是一片空白了。您可嘗試直接載網址列輸入 xxxxxxx.xaml的檔名,就可測試出這種現象 ,若無法讀取(檢視到.xaml檔案內容),就表示您的IIS伺服器需要設定。


若是Win2003 Server,您可以進入 IIS 管理員,開啟網站內容,增加一組 .xaml 的 MIME識別即可:


資料如下:
副檔名  類型
.xaml   application/xaml+xml

此問題與解決方案由 Johnny 提供。

參考網址為: http://www.cjcraft.com/blog/2007/05/08/HowToConfigureIIS50AndIIS60ToDeploySilverlightApplications.aspx

留言

匿名表示…
Dear Teacher:

小弟有個疑問,在使用VS 2005 Pro 當中 ,我完成了一個實作的Silverlight Web-Page,在VS 2005 執行網頁後,錯誤清單會有屬性未宣告的Events ,程式是可以執行! 有辦法將清單的屬性值給設定正確而不會一直出現未設定的錯誤訊息嗎?
另一中文字的問題,我使用了 Glyphs 的指令將中文字型可以使網頁顯現出來,但有一個令我頭痛的問題,每當我要編修Xmal Code在VS 2005的環境裡的中文部份就會亂碼,我的臨時解決對策是copy 出來到記事本存放.若編修時再出現亂碼就覆蓋原始Xmal (有中文的)回去 , 請問是應該在 VS 2005內的工具選項裡設定何種條件呢?

PS: 問題訊息
1. 警告 3 'http://schemas.microsoft.com/winfx/2006/xaml:Name' 屬性未宣告。 C:\Documents and Settings\allen\My Documents\Visual Studio 2005\Projects\Action\Action\Main.xaml 10 12 Action
2.Glyphs Canvas.Left="460" Height="35" Canvas.Top="370" UnicodeString="?摰憭芸像撅梁1蝣啗?蝡? FontRenderingEmSize="18" Fill="White" FontUri="jt1-48u.ttf" Canvas.ZIndex="100"

以上!


煩請解惑 ,謝謝!

Allen
Unknown寫道…
Hello, 你可以試一下,如果要顯現的中文字如果不會很多,可以直接指定你所要顯示的中文字,如下
var msg = "測試";
var GlyphsName = sender.findName("GlyphsName");
GlyphsName["UnicodeString"] = msg;
or
sender.findName("GlyphsName").unicodeString = msg;

如果字很多的話比較好的方法是寫成一個.txt 檔, 然後在onLoad的事件(或要啟動的事件中)使用downloader下載後抓取你所要顯示的字,然後再指定給Glyphs或是指接利用Ajax中的responseText的方式取得文字檔,你可以參考下列網址的做法
http://blog.xuite.net/jameschih/java/5599536
David寫道…
第一個問題其實是命名空間的宣告,您可以直接把x:Name改成Name即可...
第二個問題您可以考慮再.xaml檔案的表頭加上
<?xml version="1.0" encoding="utf-8" ?>
試試看...
匿名表示…
good ! I understand ...

Thank you , Teacher !

I sure do your Answer is Correct!

allen
匿名表示…
老師,加入.xaml 這個好像1.1還1.0的方法,我測試2.0需要加.xap
方法如下,寫在這可能會有人需要吧!
執行iis->網站內容->http標頭->mime類型
在IIS的MIME Type新增
File name extension:.xap
MIME type: application/x-silverlight-app
再次感謝您的簽名,承佑。

這個網誌中的熱門文章

使用 Airtable 在小型需求上取代傳統資料庫

在POC或迷你專案中使用 LiteDB

專業的價值...

精彩(且驚人)的Semantic Kernel入門範例

周末讀書會 - 一如既往