如何解决Silverlight集成到IIS无法显示页面问题
当我们使用Http方式新建站点时,IIS的默认配置无法显示Silverlight。
主要原因是因为浏览器无法下载.xap文件,因为IIS的默认配置不支持.xap的mime-type。
可以尝试手动下载.xap文件,在浏览器中输入
http://<hostName>/<projectName>/<silverlightLinkFolder>/ClientBin/<silverlightProjectName>.xap
例如:http://localhost/WebSample/ClientBin/SilverlightSample.xap,
我发现会出现“无法找到该页”页面,无法下载xap文件
解决方法:
1、将.xap加入IIS mime-type配置中;
2、将.xap文件重命名为.zip文件;
3、使用 IHttpHandler 接口输出文件;
方法1:个人认为支持某些功能修改IIS配置是一个不好习惯,如果在使用远程虚拟空间时,将变得很被动。
方法2:在调试时比较麻烦,因为每次生成项目时需要重命名。
方法3:
首先实现IHttpHandler
在web.config配置文件 <httpHandlers> 节点加入
<add verb="*" path="ClientBin/SilverlightSample.aspx" type="SilverlightXapHandler"/>
修改Silverlight显示页面连接
主要原因是因为浏览器无法下载.xap文件,因为IIS的默认配置不支持.xap的mime-type。
可以尝试手动下载.xap文件,在浏览器中输入
http://<hostName>/<projectName>/<silverlightLinkFolder>/ClientBin/<silverlightProjectName>.xap
例如:http://localhost/WebSample/ClientBin/SilverlightSample.xap,
我发现会出现“无法找到该页”页面,无法下载xap文件
解决方法:
1、将.xap加入IIS mime-type配置中;
2、将.xap文件重命名为.zip文件;
3、使用 IHttpHandler 接口输出文件;
方法1:个人认为支持某些功能修改IIS配置是一个不好习惯,如果在使用远程虚拟空间时,将变得很被动。
方法2:在调试时比较麻烦,因为每次生成项目时需要重命名。
方法3:
首先实现IHttpHandler
using System.IO;
/// <summary>
/// Summary description for SilverlightXapHandler
/// </summary>
public class SilverlightXapHandler : IHttpHandler
{
public SilverlightXapHandler()
{
}
protected String XapFile
{
get { return @"ClientBin\SilverlightSample.xap"; }
}
IHttpHandler Members
}
/// <summary>
/// Summary description for SilverlightXapHandler
/// </summary>
public class SilverlightXapHandler : IHttpHandler
{
public SilverlightXapHandler()
{
}
protected String XapFile
{
get { return @"ClientBin\SilverlightSample.xap"; }
}
IHttpHandler Members
}
在web.config配置文件 <httpHandlers> 节点加入
<add verb="*" path="ClientBin/SilverlightSample.aspx" type="SilverlightXapHandler"/>
修改Silverlight显示页面连接