真的是巨坑
搞明白問題的我簡直無法用言語來描述我的心情
先上架構圖
理想中的架構
服務隨便上 網關只負責分發
然後跟隨官方教程寫遇到了序列化問題
以前有經驗,不慌,以前稀裏糊塗就搞定了。
再然後遇到一個令人崩潰的問題
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是預編譯
他在程序啓動的時候執行掃包,編碼,生成類文件
新增的實體沒有被生成類文件。
當然沒有權限訪問,因爲根本不存在。