布署用“RIA Services RC”开发的项目
设置发布服务器
前提:假定您已经开发完成了您的应用软件并且在您有开发机器上运行良好。现在,您要将它发布到服务器上。
您需要在服务器上安装.Net 4 RC,最好也安装了RIA Services。对于布署来说,服务器分为二种:
共享服务器(即:租用空间的服务器):
下面是支持.Net 4 RC和RIA Services RC空间的提供商(国内一般不会立即支持.Net 4.0):
注意:ASPHostCentral有一系列博文[1, 2, 3]可以帮助您将RIA Service布置成功。
自主服务器:
如果您打算布署一个自主服务器的话,请点击here下载.Net 4 RC;请点击here下载RIA Service RC到本地,将用下面的命令行安装:
msiexec /i RIAServices.msi /SERVER=true
更多的内容请点击here参考 Deepesh’s blog。
部署方式也可分为以下几种:
Bin文件夹布署方式:
如果您可以访问.Net 4 RC Server但没有安装RIA Services的授权,您可以选择这种方式,即:将RIA Services放到Bin目录下。
如果您使用Visual Studio 生成>发布的这种方式发布您的应用程序,请确保下面的三个引用(在Refrences目录下)被标记为“Copy Local = True”;

您也可以手动拷贝它们到Bin目录下。
布署LINQtoSQL使用程序:
RIA Services LINQtoSQL Provider已经被移到RIA Services Toolkit中去了。
如果您正在布署使用了L2S的项目,那么您需要手动布署Microsoft.ServiceModel.DomainServices.LinqToSql程序集到您的服务器GlobalAssemblyCache中,而且要确保它被拷贝到Bin目录下。
Azure(微软的云计算平台)suppot:
由于RIA Services RC只支持.Net4,而Azure当前只支持.Net 3.5,所以暂时不能将RIA Services RC项目布署到Azure平台上。
设置IIS
RIA Servcies支持II6/II7.
但,WCF在IIS上不支持MultipleAuthenticationSchemas。
所以,如果您如果在项目中使用Form认证(如果您使用Business Application模板建立项目的话,Form认证是默认的)的话,您需要确保IIS的虚拟目录使用了Forms授权方式。使用Forms Auth + Anonymous将会非常有效,但不支持Auth + Integrated Auth。
同样的,如果您使用Windows认证方式的话,您需要确保您的网站项目设置为Integrated Auth。
如果您不能设置服务器的IIS的话,您需要和服务器的服务者一起完成这些设置。
布署项目
一旦您完成了服务器设置,安装RIA Services或将RIA Services拷贝到布署目录后,布署工作就非常容易了。下面是一个典型的宿主Silverlight的网站项目:

ClientBin目录包括.xap(Silverlight代码),Bin目录则包括了项目需要的DLL文件(动态链接库)。
如果所有都就绪,浏览.aspx文件时,浏览器将自动下载并运行Silverlight项目。
如果您打开.ASPX文件时,Silverlight文件没有被下载或正确运行时,估计是ASP.Net服务器或IIS没有正确设置。在此博文中我不会深究SilverLight的布署问题,在网上有很多这样的资料。
如果Silverlight项目正确下载,但访问DomainService失败的话,则可能是RIA Servcie布署问题,下面,我将详细说明这些可能出现的问题:
检查布署问题
下图说明上不同平台上,数据或错误是如何从Domain Sercie传到Silverligth客户端的。

CustomErrors:
在DomainServcies层抛出的异常传到Silverlight客户端并且没有被处理。
如果网站项目的配置文件的Custom Errors被启用的话(默认值是Off),客户端将有足够的错误信息帮助用户处理异常。
<customErrors mode="On"/>
因为项目在开发环境工作正常但布署后运行不正常,常见的问题是服务器环境没有正确配置。比如:数据连接字符串不配置。
好了,今天就到这里了,明天再继续往下说。
原创:Saurabh
此文章只支持only support Dev 10/.NET 4/SL 4.

浙公网安备 33010602011771号