IIS7部署Silverlight5应用程序

sl部署比开发还麻烦,还好在网上找到这篇帖子,基本解决了遇到的所有问题:

 

http://www.cnblogs.com/sonce/archive/2011/03/04/1970803.html

 

 

当做好了一个Silverlight程序,这是我们需要部署程序到IIS。我的程序使用WCF RIA SERVICE+Silverlight开发。先看下我的环境:

  系统:WIN7 64bit

  IIS:IIS7 ,.NET 4.0,Silverlight 4

   首先以管理员身份运行命令行:

 

 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支持.net4

 

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

 

 

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

 

 

  在发布的目录中有bin文件夹,里面存放的是你程序引用的dll,ClientBin中存放XAP包。外面是一些页面和web.config。

 

 

  3:打开IIS,在Default Web Site添加应用程序,名字为test,程序池选择的是DefaultAppPool。

 

 

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

 

 

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

 

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

IIS7部署Silverlight5应用程序_第1张图片

 

 

 

 

  6:再次刷新程序,靠,又出现未找到程序集错误。 因为在服务器上我们没有装RIA SERVICE,可以在这个地方下载http://www.silverlight.net/getstarted/riaservices/。如果你没有权限在服务器上面安装,可以通过下面拷贝程序集的方法来解决此问题。

 

 

  选择图中的三个程序集,在属性窗体中选择复制到本地设置为True.然后重新发布一次。

 

 

  7:在此运行程序,嗯,这下程序显示出来了。但是无法找到服务。

  对每一个DomainService,和WCF在运行时被动态的创建,地址是域名/DomainService类名-DomainService类名.svc。如果你的DomainService类在命名空间VDP.Service.Web,类名是CustomerContext,那么地址是:http://www.yourdomain.com/VDP-Service-WEB-CustomerContext.svc。

 

 

 

  如果经过上面的设置还未能解决,则需要检查IIS身份验证。因为WCF不支持多重验证架构。

  如果你的程序使用FORM验证,在IIS对应的虚拟目录页需要启用Form验证,表单验证+匿名验证也可以正常运行。如果是表单验证+集成验证的话则不可以。

  同样如果你使用WINDOWS验证,确保启用了集成验证。

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

 

 

  禁用WINFORM验证。

 

 

  通过上面的一系列配置,程序成功的部署到了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

 

你可能感兴趣的:(silverlight)