【发布时间】: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