现在的位置: 首页 > 综合 > 正文

IIS7部署Silverlight应用程序

2012年12月23日 ⁄ 综合 ⁄ 共 1393字 ⁄ 字号 评论关闭

当做好了一个Silverlight程序,这是我们需要部署程序到IIS。我的程序使用WCF RIA SERVICE+Silverlight开发。先看下我的环境:
系统:WIN7 64bit
IIS:IIS7 ,.NET 4.0,Silverlight 4

1:我们先发布程序,如下图,在***.WEB项目右键—>Publlic. 

Deploy 
2:先发布程序到文件系统,选择File System,选择存放路径。然后单击publish。 

public web 
在发布的目录中有bin文件夹,里面存放的是你程序引用的dll,ClientBin中存放XAP包。外面是一些页面和web.config。 
files
3:打开IIS,在Default Web Site添加应用程序,名字为test,程序池选择的是DefaultAppPool。

 addapp
4:浏览网站,出现500错误,主要是目录访问权限问题。

 iis500
打开文件夹属性—>安全,添加IUSER,和IIS_IUSERS用户,并给予修改的权限。

 addpermission
5:刷新网页,出现框架版本问题,我们修改DefaultAppPool程序池,选择.NET版本为4.0。

targetframework

framework 
6:再次刷新程序,靠,又出现未找到程序集错误。 因为在服务器上我们没有装RIA SERVICE,可以在这个地方下载http://www.silverlight.net/getstarted/riaservices/。如果你没有权限在服务器上面安装,可以通过下面拷贝程序集的方法来解决此问题。 
notloadassembly
选择图中的三个程序集,在属性窗体中选择复制到本地设置为True.然后重新发布一次。 
copylocalassembly
7:在此运行程序,嗯,这下程序显示出来了。但是无法找到服务。
对每一个DomainService,和WCF在运行时被动态的创建,地址是域名/DomainService类名-DomainService类名.svc。如果你的DomainService类在命名空间VDP.Service.Web,类名是CustomerContext,那么地址是:http://www.yourdomain.com/VDP-Service-WEB-CustomerContext.svc

 rianotfound

run "c:\windows\Microsoft.NET\Framework\v4.0.30319\aspnet_regiis -i"

run "c:\windows\Microsoft.NET\Framework\v4.0.30319\ServiceModelReg.exe -i"

如果经过上面的设置还未能解决,则需要检查IIS身份验证。因为WCF不支持多重验证架构。
如果你的程序使用FORM验证,在IIS对应的虚拟目录页需要启用Form验证,表单验证+匿名验证也可以正常运行。如果是表单验证+集成验证的话则不可以。
同样如果你使用WINDOWS验证,确保启用了集成验证。

 

看下图,我启用了Windows验证和Form验证,所以我需要停止到Windows验证。
iisauthion

禁用WINFORM验证。
erroragain 
通过上面的一系列配置,程序成功的部署到了IIS7。

参考资料:
http://blogs.msdn.com/b/saurabh/archive/2010/03/16/ria-services-application-deployment.aspx
http://www.cnblogs.com/haio/archive/2010/07/12/1775809.html

抱歉!评论已关闭.