1.在Silverlight启动页面
1 <%@ Page Language="C#" AutoEventWireup="true" %> 2 3 <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 4 <html xmlns="http://www.w3.org/1999/xhtml"> 5 <head runat="server"> 6 <title>SilverlightApplication9</title> 7 <style type="text/css"> 8 html, body { 9 height: 100%; 10 overflow: auto; 11 } 12 13 body { 14 padding: 0; 15 margin: 0; 16 } 17 18 #silverlightControlHost { 19 height: 100%; 20 text-align: center; 21 } 22 </style> 23 <script type="text/javascript" src="SplashScreen.js"></script> 24 <script type="text/javascript" src="Silverlight.js"></script> 25 <script type="text/javascript"> 26 function onSilverlightError(sender, args) { 27 var appSource = ""; 28 if (sender != null && sender != 0) { 29 appSource = sender.getHost().Source; 30 } 31 32 var errorType = args.ErrorType; 33 var iErrorCode = args.ErrorCode; 34 35 if (errorType == "ImageError" || errorType == "MediaError") { 36 return; 37 } 38 39 var errMsg = "Silverlight 应用程序中未处理的错误 " + appSource + " "; 40 41 errMsg += "代码: " + iErrorCode + " "; 42 errMsg += "类别: " + errorType + " "; 43 errMsg += "消息: " + args.ErrorMessage + " "; 44 45 if (errorType == "ParserError") { 46 errMsg += "文件: " + args.xamlFile + " "; 47 errMsg += "行: " + args.lineNumber + " "; 48 errMsg += "位置: " + args.charPosition + " "; 49 } 50 else if (errorType == "RuntimeError") { 51 if (args.lineNumber != 0) { 52 errMsg += "行: " + args.lineNumber + " "; 53 errMsg += "位置: " + args.charPosition + " "; 54 } 55 errMsg += "方法名称: " + args.methodName + " "; 56 } 57 58 throw new Error(errMsg); 59 } 60 </script> 61 </head> 62 <body> 63 <form id="form1" runat="server" style="height: 100%"> 64 <div id="silverlightControlHost"> 65 <object data="data:application/x-silverlight-2," type="application/x-silverlight-2" width="100%" height="100%"> 66 <param name="source" value="ClientBin/SilverlightApplication9.xap" /> 67 <param name="onError" value="onSilverlightError" /> 68 <param name="initParams" value="<%= String.Format("{0}={1},{2}={3}","ClientIP", Request.UserHostAddress,"ClientName",Request.UserHostName) %>" /> 69 <param name="background" value="white" /> 70 <param name="minRuntimeVersion" value="5.0.61118.0" /> 71 <param name="autoUpgrade" value="true" /> 72 <a href="/DownloadSilverlight.aspx" style="text-decoration: none"> 73 <img src="/Img/SLMedallion_CHS.png" alt="获取 Microsoft Silverlight" 74 style="border-style: none" /> 75 </a> 76 </object> 77 <iframe id="_sl_historyFrame" style="visibility: hidden; height: 0px; 0px; border: 0px"></iframe> 78 </div> 79 </form> 80 </body> 81 </html>
2.在Silverlight.web服务端添加要显示的图片及路径、silverlight插件的两个版本(32位、64位)
3.在silverlight.web服务端添加DownloadSilverlight.aspx项
1 using System; 2 using System.Collections.Generic; 3 using System.Linq; 4 using System.Web; 5 using System.Web.UI; 6 using System.Web.UI.WebControls; 7 8 namespace SilverlightApplication9.Web 9 { 10 public partial class DownloadSilverlight : System.Web.UI.Page 11 { 12 protected void Page_Load(object sender, EventArgs e) 13 { 14 //string info = "客户端IP:" + Page.Request.UserHostAddress; 15 //info += "<br/>用户信息:" + Page.User; 16 //info += "<br/>服务器电脑名称:" + Page.Server.MachineName; 17 //info += "<br/>当前用户电脑名称:" + System.Net.Dns.GetHostName(); 18 //info += "<br/>当前电脑名:" + System.Environment.MachineName; 19 //info += "<br/>当前电脑所属网域:" + System.Environment.UserDomainName; 20 //info += "<br/>当前电脑用户:" + System.Environment.UserName; 21 //info += "<hr/>"; 22 //info += "<br/>浏览器类型:" + Request.Browser.Browser; 23 //info += "<br/>浏览器标识:" + Request.Browser.Id; 24 //info += "<br/>浏览器版本号:" + Request.Browser.Version; 25 //info += "<br/>浏览器是不是测试版本:" + Request.Browser.Beta; 26 ////info += "<br/>浏览器的分辨率(像素):" + Request["width"].ToString() + "*" + Request["height"].ToString();//1280/1024 27 //info += "<hr/>"; 28 //info += "<br/>客户端的操作系统:" + Request.Browser.Platform; 29 //info += "<br/>是不是win16系统:" + Request.Browser.Win16; 30 //info += "<br/>是不是win32系统:" + Request.Browser.Win32; 31 //Response.Write(info); 32 33 //int loop1, loop2; 34 //NameValueCollection coll; 35 36 //// Load ServerVariable collection into NameValueCollection object. 37 //coll = Request.ServerVariables; 38 //// Get names of all keys into a string array. 39 //String[] arr1 = coll.AllKeys; 40 //for (loop1 = 0; loop1 < arr1.Length; loop1++) 41 //{ 42 // Response.Write("Key: " + arr1[loop1] + "<br>"); 43 // String[] arr2 = coll.GetValues(arr1[loop1]); 44 // for (loop2 = 0; loop2 < arr2.Length; loop2++) 45 // { 46 // Response.Write("Value " + loop2 + ": " + Server.HtmlEncode(arr2[loop2]) + "<br>"); 47 // } 48 //} 49 //Response.End(); 50 if (Request.ServerVariables["HTTP_USER_AGENT"].ToString().Contains("WOW64")) 51 { 52 Response.Redirect("/Silverlight/Silverlight_x64.exe"); 53 } 54 else 55 { 56 Response.Redirect("/Silverlight/Silverlight.exe"); 57 } 58 } 59 } 60 }