Silverlight项目在iis上发布

来源:互联网 发布:手机软件连不上网络 编辑:程序博客网 时间:2024/05/01 21:35

(一)、安装配置iis

其实 iis发布了7.0版本了,本来以为要安装最新版的,不过其实不必。

照网上的说法,xp 对应 iis 5.1windows2003 对应 iis 6.0windows Vista windows 7 windows 2008

对应 7.0,当然xp也可以安装 iis6.0,不过要做些系统修改,网上有教程。这里不说了。我最后还是用了iis 5.1.

控制面板——添加或删除程序——添加/删除windows组件——Internet信息服务(iis) 的前面打钩,点下一步,放入windows安装盘,进入 i386,就可以安装了。过程中应该会提示找不到ADMXPROX.DLL,其实有的后缀有点不同,选择两次 ADMXPROX.DL_就可以了,等待安装完成。

安装成功后,在控制面板——管理工具——Internet 信息服务 就打开iis,你可以发布一个网站,或用默认自带的那个网站试试。

如果遇到问题,上解决方案如下

一、 IIS 500错误 (这个不知是否系统设置被修改过,卸载iis,重装几次都不行的)。百度搜索 IIS 500错误,一步帮你搞定,(如这页:http://www.kuqin.com/web/20081016/22930.html

以下是 强人写的dos批处理,可下载运行。

http://down1.kuqin.com/code/iis500.rar

备注:我手动输入cmd 那些指令,解决不了,不知是否输入。

另外一篇解决方案,够简单简单。(我用了这个,发现500错误不见了,变成了403,算解决了吧。)

1. 运行:regsvr32 %windir%/system32/vbscript.dll (其实这一步也可以省,确保万一,还是执行吧)
2.
运行:msdtc -resetlog
3.
重新安装IIS

ps:自己总结,免得其他人走弯路。

二、关于卸载iis

建议在任何情况下都用以下步骤重新安装IIS

1、把IIS卸载。
2
、把 C:/windows/system32/inetsrv 删除。 (在安全模式中进行。)
3
、把C:/ windows/iisX.log删除,X IIS版本。(在安全模式中进行。)
4
、把C: /inetpub/ 目录删除。(在安全模式中进行。)
5
、重装IIS

三、iis 安装完之后,还有东西配置的 (如果你第一次安装的话)

错误提示:对于访问IIS元数据库失败

解决步骤:

1、依次点击开始运行  

2、在运行栏内输入   “C:/WINDOWS/Microsoft.NET/Framework/v2.0.50727/aspnet_regiis.exe -i ”(不含引号),然后点“enter”按钮。   

3、出现的cmd窗口中显示开始安装ASP.NET XXX”等内容,等待这个窗口自动关闭。

(二)Silverlight项目在iis上发布

Silverlight作为一个比较新的技术,老版本的iis上不支持那些新的后缀,不知道该怎么解析.xap

这时要对iis进行一点修改:(网站”——右键——“属性”——“HTTP”——“文件类型”——“新类型添加对应的几个类型,这样iis就支持Silverlight 了。仅此而已

      扩展名: .xap
      MIME
类型:xapapplication/x-silverlight

      扩展名: .xaml
    MIME类型:application/xaml+xm

    扩展名:  .xbap

扩展名:application/x-ms-xbap

 

扩展名:.xap

扩展名:application/x-silverlight-app

 

扩展名.xaml

扩展名:application/xaml+xml

l
(三)项目发布的小问题(菜鸟提示)

当你发布项目的时候,一般会创建项目文件夹,假如是web

用惯了vs2008,运行时通常选择了固定端口。(这时用vs的发布很简单)

如果你项目中用到了文件上传、下载之类的(偶用了ashx),会有http://localhost:2000/handle.ashx 这类地址。这时记得修改为http://localhost/web/handle.ashx。对应那个相对路径。

iis默认是80端口,所以端口都不用写了。

(四)Silverlight 访问问题

           Silverlight 跨域

Silverlight在设计的时候对网络安全方面做了很多考虑,具体可以看Silverlight SDK。跨域通信是通过在其他域的根部署使用正确跨域策略文件的 Web 服务,可以在该域中启用基于 Silverlight 的应用程序要调用的 Web 服务。Silverlight 支持两种类型的跨域策略文件。

· Silverlight 跨域策略 (clientaccesspolicy.xml)

· Flash 跨域策略 (crossdomain.xml) 的子集

通常,如果基于 Silverlight 的应用程序检测到其请求是一个跨域请求,将首先在 Web 服务的应用程序根处查找 Silverlight 跨域策略文件 (clientaccesspolicy.xml)。如果这个请求导致"404 未找到"或其他错误,应用程序将在应用程序根处查找 Flash 跨域策略文件 (crossdomain.xml)。不允许重定向跨域策略文件。此外,跨域策略文件保持对应用程序会话有效。
现在知道了只要在网站中部署一个跨域策略文件,就可以解决Silverlight跨域请求问题。

本人买的教程,是这样配置的,好像wcf要用到配置完的两个文件放在网站的根目录下

clientaccesspolicy.xml配置文件内容:

    <?xml version="1.0" encoding="utf-8"?>

<access-policy>

    <cross-domain-access>

        <policy>

            <allow-from>

                <domain uri="*"/>

            </allow-from>

            <grant-to>

                <resource path="/" include-subpaths="true"/>

            </grant-to>

        </policy>

    </cross-domain-access>

</access-policy>

crossdomain.xml 配置文件内容:

<?xml version="1.0"?>

     <cross-domain-policy>

     <allow-access-from domain="*" />

</cross-domain-policy>

原创粉丝点击