如何配置支持Silverlight的Web服务器
本文发布于 16 年前,部分内容可能已经失去参考价值。
部署Silverlight到产品Web服务器是一个相当容易的过程,尽管有时候会有一些错觉——譬如,认为Silverlight需要部署在基于微软的Web服务器(IIS)上,事实上, Silverlight不强制一定部署在基于微软的Web服务器上,Apache也可以像IIS一样,轻松愉快的支持Silverlight运行。
但是还是要那么一点东东要指出来:Web服务器通常都只支持有限种已知扩展名的静态文件内容。看起来都很好,但是Silverlight引入了两个新的文件扩展(.xaml为松散XAML文件;.xap为基于zip压缩的二进制包格式文件),因此,你需要为web服务器添加MIME类型,这样才能让Web服务器识别并处理那些类型的文件。下面列出了你需要添加到Web服务器的MIME类型:
Extension | MIME Type |
.xaml | application/xaml+xml |
.xap | application/x-silverlight-app |
这些就是你所有需要做的。但是具体到如何为不同的web服务器添加MIME类型,实际因web服务的不同而不同,下面列出了目前流行的一些web服务器和他们的链接,你可以从哪里找到如何配置和更多的信息:
当你在更新所支持的MIME类型的时候,或许还想添加相关的类型,如WPF和ClickOne应用程序的支持,那么还需要添加下表中的MIME类型:
Extension | MIME Type |
.manifest | application/manifest |
.application | application/x-ms-application |
.xbap | application/x-ms-xbap |
.deploy | application/octet-stream |
.xps | application/vnd.ms-xpsdocument |
但是如果你的web服务器在一个你不能修改其配置的共享的服务器上,那么你可以通过修改XAP文件成web服务器已支持的MIME类型来“欺骗”服务器,从而支持xap文件。XAP文件实际上是基于zip压缩的,所以可以直接把.XAP给成.ZIP,并在HTML中把Silverlight对象的source参数指到新的文件目录即可。这里有一个示例(点击这里查看),通过查看网页源代码你可以看到这项技术的实质——它就是指向一个zip压缩文件(里面包含Silverlight内容的)的纯HTML页面。
最后有一个好消息是,随Windows Server 2008发布的IIS 7.0默认已经支持了以上的WPF和Silverlight的MIME类型,包括.xap和.xaml类型扩展。所以如果你使用Windows Server 2008,就已经万事大全,只欠东风了。(另外,对于Vista,不论是全新的安装Vista SP1还是从Vista SP1 RTM升级到SP1 Release,你的IIS的配置只有在先卸载IIS功能在重新安装IIS才会更新。)