为什么奥尔良思洛存储器在更改“打招呼”示例以支持主机和谷物后启动失败

本文关键字:打招呼 主机 支持 失败 启动 存储器 奥尔良 为什么 | 更新日期: 2023-09-27 18:29:47

我在这个例子中使用了orleans的例子,而不是在同一个应用程序域中同时运行思洛存储器和客户端,而是遍历,这样两者都可以独立启动。我按照建议做了改动。我修改了IGrain1.cs以接受字符串作为参数

Task<string> SayHello(string greetings);

修改grain1.cs以实现如下代码

private string text = "Hello World!";
public Task<string> SayHello(string greetings)
{
    var oldText = text;
    text = greetings;
    return Task.FromResult(oldText);
}

当我运行思洛存储器时,它总是无法启动思洛存储器,并出现以下错误

"TypeLoadException:程序集"GrainCollection1…"中的类型"GrainCollection 1.Grain1"中的方法"SayHello"

界面和粒度定义都匹配。这里有一些简单的东西我错过了?

为什么奥尔良思洛存储器在更改“打招呼”示例以支持主机和谷物后启动失败

看看c:''Microsoft Codename Orleans SDK v0.9''SDK''LocalSilo''Applications。CodeGen在那里为每个Orleans项目构建一个文件夹。当本地思洛存储器启动时,初始化器会扫描此目录中的程序集。

尝试删除中的文件夹/应用程序和重建解决方案。您应该看到使用重建的粒度和接口DLL重新创建的项目文件夹。

在DevTestServerConfiguration.xml中,将Tracing/DefaultTraceLevel从"Warning"更改为"Info"。当你运行InitSilo时,你会看到思洛存储器在寻找什么以及它抛出的错误。这让我看到了SDK思洛存储器文件夹。

编辑:您可能还需要删除中的文件夹。。''SDK''二进制文件。请确保在删除后立即重新生成整个项目。