首页 > 代码库 > 在IIS上部署Silverlight+WCF项目教程

在IIS上部署Silverlight+WCF项目教程

1、在IIS部署Silverlight+WCF项目的前提是:在发布的机器上配置好IIS,具体操作参照http://www.jb51.net/article/29787.htm

2、IIS配置好后,打开IIS进行如下操作:

(1)在IIS中添加以下MIME类型,否则无法解析项目

.xap  application/x-silverlight-app

     .xaml  application/xaml+xml

     .xbap application/x-ms-xbap

 

 

(2)在IIS的【处理程序映射】中检查是否存在以下几个文件

  

接下来,就是对我们要发布的项目进行相应的配置。我们在编写Silverlight程序时,大多情况下都需要借助WCF来访问我们的后端数据库,在开发过程中访问数据库都是正常的,但是当把整个silverlight项目连同WCF发布到IIS上之后,会遇到这样一个问题:在本地IIS的服务器上能够正常访问数据库,但是当通过Client端执行程序时却无法访问数据库,也没有错误信息,调用页面都是正常的。

应该有很多人都遇到了这个问题,在网上也有很多关于这个问题的解决方法,但是绝大部分都是从跨域访问的角度来解决这个问题的,然后再尝试添加clientaccesspolicy.xmlcrossdomain.xml这两个配置文件,并且添加了IIS中MIME配置后,依然有很多人没有解决,最后通过重新对WCF进行了配置检查,更改了对WCF绑定和调用的方式,这才得以把问题彻底解决,下面和大家一起分享一下具体步骤。

(1)检查你的ServiceReferences.ClientConfig文件,这个文件是你在Silverlight程序中添加服务引用时自动生成的,检查里面绑定WCF的方式是否为BasicHttpBinding,具体代码如下:

 

如果为customHttpBinding,则需要手动进行修改,在你的Web工程下找到web.config文件,同样检查里面的WCF配置信息,绑定方式是否为"basicHttpBinding"方式,并且契约的名称是否填写正确,其具体代码如下:

 

修改完成后,在前端重新引用WCF服务。

最后,修改一下你调用WebService的代码:

 

在发布前需要还需要在ServiceReferences.ClientConfig文件将address改为本机IP。

                   

 

 

在IIS上部署Silverlight+WCF项目教程