gpt4 book ai didi

c# - 为什么 orleans silo 在更改 say hello 示例以支持主机和 grain 后开始失败?

转载 作者:太空宇宙 更新时间:2023-11-03 21:26:15 25 4
gpt4 key购买 nike

我正在关注 orleans example在此示例中,它们不是在同一个应用程序域中同时运行筒仓和客户端,而是遍历,以便两者都可以独立启动。我按照建议进行了更改。我修改了 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);
}

当我运行 silo 时,它总是无法启动 silo 并出现此错误

"TypeLoadException: Method 'SayHello' in type 'GrainCollection1.Grain1' from assembly 'GrainCollection1...'

接口(interface)和粒度定义都匹配。我在这里缺少一些简单的东西吗?

最佳答案

查看 c:\Microsoft Codename Orleans SDK v0.9\SDK\LocalSilo\Applications。 CodeGen 在那里为每个 Orleans 项目构建一个文件夹。当本地 silo 启动时,初始化程序会扫描此目录以查找程序集。

尝试删除 ../Applications 中的文件夹并重建您的解决方案。您应该会看到使用重建的 grain 和接口(interface) DLL 重新创建的项目文件夹。

在 DevTestServerConfiguration.xml 中,将 Tracing/DefaultTraceLevel 从“警告”更改为“信息”。当您运行 InitSilo 时,您将看到筒仓正在寻找什么以及它抛出的错误。这让我看到了 SDK silo 文件夹。

编辑:您可能还需要删除 ..\SDK\Binaries 中的文件夹。确保在删除后立即重建整个项目。

关于c# - 为什么 orleans silo 在更改 say hello 示例以支持主机和 grain 后开始失败?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26825822/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com