WCF RIA SERVICE相关技术

WCF RIA SERVICE实体属性拷贝

private void DoSubmit() {
    ((IEditableObject)this.RepairContract).EndEdit();
    var domainContext = new DmsDomainContext();
    var newRepairContract = new RepairContract();
    domainContext.RepairContracts.Add(newRepairContract);
    newRepairContract.ApplyState(null, this.RepairContract.ExtractState(ExtractType.ModifiedState));
    foreach(var repairContractItem in this.RepairContract.RepairContractItems) {
        var newRepairContractItem = new RepairContractItem();
        newRepairContract.RepairContractItems.Add(newRepairContractItem);
        newRepairContractItem.ApplyState(null, repairContractItem.ExtractState(ExtractType.ModifiedState));
        foreach(var repairContractMaterial in repairContractItem.RepairContractMaterials) {
            var newRepairContractMaterial = new RepairContractMaterial();
            newRepairContractItem.RepairContractMaterials.Add(newRepairContractMaterial);
            newRepairContractMaterial.ApplyState(null, repairContractMaterial.ExtractState(ExtractType.ModifiedState));
            foreach(var oldSparePart in repairContractMaterial.OldSpareParts) {
                var newOldSparePart = new OldSparePart();
                newRepairContractMaterial.OldSpareParts.Add(newOldSparePart);
                newOldSparePart.ApplyState(null, oldSparePart.ExtractState(ExtractType.ModifiedState));
        }
    }
}

2.WCF RIA SERVICE配置问题

当 aspNetCompatibilityEnabled="true" 时,sl无法引用 WCF的服务,WCF的 servics.svc 的文件浏览时,提示出错,如下:

The service cannot be activated because it does not support ASP.NET compatibility. ASP.NET compatibility 
is enabled for this application. Turn off ASP.NET compatibility mode in the web.config or add the 
AspNetCompatibilityRequirements attribute to the service type with RequirementsMode setting as ‘Allowed‘ or ‘Required‘.

当aspNetCompatibilityEnabled="false"时,试运行时,又出现出错信息:

An unhandled exception(‘Unhandled Error in Silverlight Application

Code:4004

Category:ManagedRuntimeError

Message:

System.ServiceModel.DomainServices.Client.DomainOperationException:

该项目中,包括WCF服务和RIA服务,请问该怎么办?

解决方法:

首先在web.config种设置aspNetCompatibilityEnabled="true"

其次,在wcf service类上标记如下attribute

using System.ServiceModel.Activation;

    [AspNetCompatibilityRequirements(

        RequirementsMode=AspNetCompatibilityRequirementsMode.Allowed)]

    public class Service2 : ClassLibrary1.IService2

结论:再次运行不会报同样的错误

3.在服务器上安装 WCF RIA Services 失败

?在 Internet 信息服务(IIS)管理器中创建应用程序池时 .Net Framework 版本下拉选项中没有 .Net Framework 4.0.30319。

?在浏览器中访问业务系统首页时,Silverlight下载进度一直停留在100%,并未正确显示登录界面。

?在浏览器中访问业务系统中某个业务节点时,系统未能正确加载查询面板中下拉框中的内容。

?在 Internet 信息服务(IIS)管理器中启用了动态/静态内容压缩,但服务端响应仍是未压缩的内容。

在服务器上安装 WCF RIA Services 失败。

安装 WCF RIA Services 失败,提示信息为"Prerequisites Check

The following required components are missing:

Microsoft Visual Studio 2010 or Visual Web Developer 2010 Express

Microsoft Silverlight 4 Developer Runtime

Microsoft Silverlight 4 SDK"

在应用服务器上安装 RiaServices 时,请使用如下命令:

msiexec /i RiaServices.msi server=True

在 Internet 信息服务(IIS)管理器中创建应用程序池时 .Net Framework 版本下拉选项中没有 .Net Framework 4.0.30319。

请确保该服务器已安装 .Net Framework 4.0。

在此前提下,可执行此命令重新注册 .Net Framework 4.0 到 IIS 中:%WINDIR%/Microsoft.Net/Framework/v4.0.30319/aspnet_regiis.exe -i

在浏览器中访问业务系统首页时,Silverlight下载进度一直停留在100%,并未正确显示登录界面。

可使用 Fiddler 跟踪,若看到客户端在访问服务端路径为 \LicenseService.svc 时返回的HTTP代码为500,则应是业务系统未正确加载激活机制。

请在该网站所使用的应用程序池的高级设置界面,将启用32位应用程序属性设置为True。

在浏览器中访问业务系统中某个业务节点时,系统未能正确加载查询面板中下拉框中的内容。

可使用 Fiddler 跟踪,若看到客户端在访问服务端路径为 /ClientBin/Sunlight-Silverlight-Dms-Web-DmsDomainService.svc/ 时返回的HTTP代码为400,则应是服务端 bin 目录下文件不完整导致。

由于业务系统打印需要使用 Telerik Reporting 组件,请确认服务端 bin 目录下包含有 Telerik.Reporting.dll、Telerik.Reporting.Service.dll 这两个DLL文件。

在 Internet 信息服务(IIS)管理器中启用了动态/静态内容压缩,但服务端响应仍是未压缩的内容。

可使用 IIS 的失败请求跟踪功能,在日志中搜索关键字"_COMPRESSION",若显示压缩失败的原因是"NO_ACCEPT_ENCODING",应是客户端与服务端之间的防火墙过滤了请求的 Accept-Encoding 属性。

可调整防火墙设置,以 ISA Server 为例,可禁用 Compression Filter 和 Caching Compressed Content Filter。

时间: 2024-10-10 06:24:58

WCF RIA SERVICE相关技术的相关文章

Silverlight项目笔记1:UI控件与布局、MVVM、数据绑定、await/async、Linq查询、WCF RIA Services、序列化、委托与事件

最近从技术支持转到开发岗,做Silverlight部分的开发,用的Prism+MVVM,框架由同事搭好,目前做的主要是功能实现,用到了一些东西,侧重于如何使用,总结如下:   1.UI控件与布局     2.MVVM     3.数据绑定     4.await/async     5.Linq查询     6.WCF RIA Services     7.序列化     8.委托与事件 1.UI控件与布局 常用的主要是Grid.StackPanel.Border,其中最常用的的是Grid,是一

SAAS相关技术要点

这篇文章本来是我们开发组内部用的一个小文档.因为我们公司以前没有做SAAS的经验,就成立了一个小组做一做这方面的技术前探,我是成员之一.这篇文档想从宏观的层面把开发一个SAAS应用所要用到的技术点稍微梳理一下,便于指导后面的技术前探工作.之所以发在这里,是因为自己相关的研发经验太缺乏,可能有些技术盲点是自己根本没能考虑到的,希望园子里的各位大牛多多指导. 一.聚焦“三头怪” 在MS的官方文档中,把构建一个足够成熟的SAAS(MS简单列出了SAAS应用的4级成熟度)所面临的3个主要挑战:可配置性,

Asp.Net WebAPI及相关技术介绍(含PPT下载)

此PPT讲述了Asp.Net WebAPI及相关Web服务技术发展历史. 共80多页,Asp.Net WebAPI在讲到第36页的时候才会出现,因为这个技术不是凭空产生的,它有着自己的演变进化的历史.我们要先弄清它从哪里来的?然后再说它能做什么事. 这个PPT涉及到的技术名词有: XML-RPC,SOAP,REST, SOA Asp.Net WebForm,WebService, WCF Asp.Net WebAPI, Asp.Net MVC,JSON Asp.Net Routing, MVVM

WCF Data Service ----理论准备

WCF数据服务(WCF Data Service )是.NET Framework的一个组件. 可以使用此组件创建一些服务,利用开放式数据协议(OData)来借助具象状态传输(REST)语义通过Web或Intranet公开和使用数据. OData(Open Data Protocol)开放数据协议 OData将数据公开为可通过URI寻址的资源,可使用GET.PUT.POST和DELETE这些标准HTTP谓词来访问和更改数据. OData使用Entity Data Model的实体关系约定,将资源

.svc处理程序映射缺失导致的WCF RIA Services异常

在确定代码.编译结果和数据库都正常的情况下,无法从数据库取到数据.错误提示:Sysyem.Net.WebException:远程服务器返回了错误:NotFound,监听发现请求数据库的服务异常,访问相关地址HTTP404错误. 向数据库发起的请求异常 访问svc地址后的错误信息 在确定其他各方面正常,并且修复了一遍vs,各种IIS设置检查后依然没有找到原因,而且工程在同事电脑上能够正常运行,最后确定只可能是.Net Framework或者IIS有问题,因为之前同事在机器上装测试工具,安装了.Ne

Web Service 附件技术的发展及演变

Web Service 通常将业务数据封装在 SOAP 主体或者 SOAP 消息附件中进行传输,这些附件往往采用 Base64 编码二进制方式进行封装,这将大大增加待传输的数据量,消耗比较长的编码时间和传输时间.随着 SOA 以及 Web Service 技术的广泛采用,由于网络带宽,延时的影响以及内存大小的限制,越来越多的应用对 Web Service 附件传输方式以及传输效率提出了更高的要求. 引言 本文对 Web Service 附件技术及其相关开发工具进行了总结,详细介绍了 Web Se

我对大数据相关技术的学习心得及理解

本篇为这一段时间以来我对大数据相关技术的学习心得及理解,主要涉及以下几个方面: noSql, 集群, 数据挖掘, 机器学习,云计算,大数据,以及Hadoop和Spark.主要都是一些初级的概念澄清之类的东西,并且比较凌乱,慎入.* 1. NoSQL我的理解是,NoSQL主要用于存储一些非结构化数据, 是关系数据库与文件存储方式(比如视频文件就适合使用文件的方式存储)的过度. ** 1.1 NoSQL的分类: 列存储: Hbase(BigTable的开源实现),可存储结构化数据. Cassandr

java面试题全集(中)--Java Web和Web Service相关面试题

这部分主要是与Java Web和Web Service相关的面试题. 96.阐述Servlet和CGI的区别? 答:Servlet与CGI的区别在于Servlet处于服务器进程中,它通过多线程方式运行其service()方法,一个实例可以服务于多个请求,并且其实例一般不会销毁,而CGI对每个请求都产生新的进程,服务完成后就销毁,所以效率上低于Servlet. 补充:Sun Microsystems公司在1996年发布Servlet技术就是为了和CGI进行竞争,Servlet是一个特殊的Java程

第五次作业-系统实现可能需要用到的技术,及学习相关技术的心得

一.系统实现可能需要用到的技术: 我们团队的项目是学生作业管理系统,为了实现这个系统,我们可能需要用到的技术有面向对象编程.UML建模.ASP.NET.C#.SQL server.JQuery 等. (1)面向对象程序设计(Object-Oriented Programming)是一种起源于六十年代,发展已经将近三十年的程序设计思想.对象是对现实世界实体的模拟,由现实实体的过程或信息来定义.一个对象可被认为是一个把数据(属性)和程序(方法)封装在一起的实体,这个程序产生该对象的动作或对它接受到的