Orleans 序列化遇到的坑

真的是巨坑

搞明白问题的我简直无法用言语来描述我的心情

先上架构图

理想中的架构

服务随便上 网关只负责分发

然后跟随官方教程写遇到了序列化问题

以前有经验,不慌,以前稀里糊涂就搞定了。

再然后遇到一个令人崩溃的问题

One or more errors occurred. (Named type "Entity.BookCategory" is invalid: Type string "Entity.BookCategory" cannot be resolved.) ---> System.TypeAccessException: Named type "Entity.BookCategory"

Entity.BookCategory这个自行替换成实体类文件名

中间出现的描述词是在太少

为一一个描述is invalid: Type string 却没什么卵用  摸不着头脑

在然后注意到报错的类是System.

TypeAccessException

The exception that is thrown when a method attempts to use a type that it does not have access to.

 

翻译过来是没有访问权限抛出的异常

 

一脸懵逼

Entity是基础库 大家都引用了

只有Gateway没有引用

于是引用Entity库

这个是Github上大佬给出的解决方法

最开始我是用的第一个解决方法

在Gateway安装两个Nuget,没有解决

.ConfigureApplicationParts(parts => parts.AddApplicationPart(typeof(BookCategory).Assembly).WithReferences())

然后转为第三种方法,诶 跑动了

还没高兴一会。

做了个测试,

网关启动

修改服务逻辑 添加新的类

启动服务与客户端

问题又出来了

这可真是叫人绝望啊

意味着每一次新增实体都要重启网关。

这是在逗我?

 

也大概能猜到为什么

Orleans是预编译

他在程序启动的时候执行扫包,编码,生成类文件

新增的实体没有被生成类文件。

当然没有权限访问,因为根本不存在。

posted @   AnAng  阅读(821)  评论(3编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示