The"CreateRiaClientFilesTask" task failed unexpectedly
System.IO.FileLoadException:Loading this assembly would produce a different grant set from other instances.(Exception from HRESULT: 0x80131401)
这是WCF RIA中的一个BUG,常见于在服务器端使用了泛型类
原因:
The problem willoccur when marshaling an object by value between two appdomains in the sameprocess wherethetype of the instance is generic, the generic template type isdefined in mscorlib, one or more of its instantiating types is not defined inmscorlib and multi-domain loader optimization has been enabled in one domainbut not the other.
Unfortunately thisbug was discovered too late and didn't make the bar for the V2.0 product. Thereare some workarounds however:This bug is specific to an optimized version ofthe in-process, cross-appdomain remoting channel。
解决方式:
方式1.修改注册表:
HKEY_CURRENT_USER\Software\Microsoft\.NETFramework\UseNewCrossDomainRemotingregistry value (a DWORD) to 0 (or the version in HKEY_LOCAL_MACHINE)
方式2.在WCFRIA服务器端Project设置:
set complus_UseNewCrossDomainRemoting=0

在WCF RIA服务中遇到'CreateRiaClientFilesTask'任务意外失败,原因是类型加载异常,特别是涉及泛型类时。此问题是由于多域加载优化与跨域进程内remoting通道的优化不兼容导致。微软已确认这是一个bug,虽然未能在V2.0中修复,但提供了两种解决方案:1. 修改注册表中UseNewCrossDomainRemoting的值为0;2. 在WCF RIA服务器端项目设置中,将complus_UseNewCrossDomainRemoting设为0。
152

被折叠的 条评论
为什么被折叠?



