【问题标题】:Orleans Extension not installed奥尔良扩展未安装
【发布时间】:2016-06-23 09:13:26
【问题描述】:

我开始深入研究 Orleans Streams,但在使用 ImplicitStreamSubscription 时遇到了问题。我在QuickStart 示例的基础上添加了一个实现接口和颗粒的新项目。这是我目前掌握的所有代码。

[ImplicitStreamSubscription("RANDOMDATA")]
public class VSMDiscovery : Grain, IVSMDiscovery
{
    public override Task OnActivateAsync()
    {
        Console.WriteLine("Started" + this.GetPrimaryKey());

        return base.OnActivateAsync();
    }
}

public interface IVSMDiscovery : IGrainWithIntegerKey
{
}

在开发测试主程序中,我只是使用

发送一个事件
 var guid = Guid.NewGuid();

 //Get one of the providers which we defined in config
 var streamProvider = Orleans.GrainClient.GetStreamProvider("SMSProvider");

 //Get the reference to a stream
 var stream = streamProvider.GetStream<int>(guid, "RANDOMDATA");

 stream.OnNextAsync(1);

一切似乎都执行得很好,实例化了一个新的grain,并调用了 OnActivateAsync 将消息写入控制台,但是我收到了这个错误。

VSM 已启动206d105b-d21b-496c-997a-9dac3cf370b3 未在grain Draco.VSMConnection.VSMDiscovery 上安装扩展试图从可调用的 Orleans.Runtime.ActivationData 调用类型 Orleans.Streams.OrleansCodeGenStreamConsumerExtensionMethodInvoker 异常 = Orleans.Runtime.GrainExtensionNotInstalledException: 扩展未安装在grain Draco.VSMConnection.VSMDiscovery 试图从可调用的 Orleans.Runtime.ActivationData 调用类型 Orleans.Streams.OrleansCodeGenStreamConsumerExtensionMethodInvoker

[2016-03-09 05:53:41.007 GMT 14 WARNING 103405 InsideRuntimeClient 127.0.0.1:11111] 扩展未安装在grain Draco.VSMConnection.VSMDiscovery 上,试图从可调用的 Orleans.Runtime 调用类型 Orleans.Streams.OrleansCodeGenStreamConsumerExtensionMethodInvoker。消息 NewPlacement Request S127.0.0.1:11111:195198808*cli/5853f180@9c59fabf->S127.0.0.1:11111:195198808*grn/EB2C0203/ac9d7a99@0e33939b #5: global::Orleans.StreamsExtension 的 ActivationData。 :DeliverItem()

正如我所提到的,一切似乎都运行正常,但出现此错误非常令人担忧。任何帮助将不胜感激。

【问题讨论】:

  • 我也遇到过同样的问题。你能解决这个问题吗?

标签: c# reactive-programming orleans


【解决方案1】:

您需要确保在配置文件中为客户端和 silo 正确指定了“SMSProvider”流提供程序,如下所示:https://github.com/dotnet/orleans/blob/master/test/Tester/OrleansConfigurationForStreamingUnitTests.xml#L9

【讨论】:

  • 表示链接已损坏 :)
【解决方案2】:

对我来说,这是由具有隐式订阅属性的颗粒引起的,但它忘记了在 OnActiveAsync 方法中订阅流(这是必需的,并在上面提到的快速入门中进行了概述)......根本无法从错误消息中清除。希望这可以减轻其他人的痛苦。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-04-15
    • 2021-06-27
    • 2017-02-11
    • 2017-05-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多