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。

转载于:https://www.cnblogs.com/hornet/p/4060294.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值