为什么奥尔良筒仓在改变之后开始失败说你好的例子来支持主机和谷物?

时间:2014-11-09 06:56:23

标签: c# orleans

我正在关注此示例中的orleans example,而不是在同一应用域中同时运行silo和客户端,它们正在逐步完成,以便两者都可以独立启动。我按照建议进行了更改。我修改了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:方法'SayHello',类型'GrainCollection1.Grain1'来自程序集'GrainCollection1 ...'

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

1 个答案:

答案 0 :(得分:4)

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

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

在DevTestServerConfiguration.xml中,从&#34;警告&#34;更改Tracing / DefaultTraceLevel。到&#34;信息&#34;。当您运行InitSilo时,您将看到筒仓正在寻找什么以及它投掷的错误。这指向了SDK silo文件夹。

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