【问题标题】:Akka.Remote config failuresAkka.Remote 配置失败
【发布时间】:2018-04-19 11:21:59
【问题描述】:

我一直在尝试创建一个使用 Akka.Remote 和 akka.net 1.3 的演员系统...但是,由于以下异常,我无法创建该系统的实例:

TypeLoadException: Cannot instantiate transport [Akka.Remote.Transport.DotNetty.DotNettyTransport]. It has no public constructor with [Akka.Actor.ActorSystem] and [Akka.Configuration.Config] parameters

问题是,我的配置是从 Akka.NET 文档中复制的,我不知道我做错了什么......这是配置:

<?xml version="1.0" encoding="utf-8"?>
<configuration>
  <configSections>
    <section name="akka" type="Akka.Configuration.Hocon.AkkaConfigurationSection, Akka" />
  </configSections>
  <startup>
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
  </startup>
  <runtime>
    <assemblyBinding xmlns="urn:schemas-microsoft-com:asm.v1">
      <dependentAssembly>
        <assemblyIdentity name="System.Diagnostics.DiagnosticSource" publicKeyToken="cc7b13ffcd2ddd51" culture="neutral" />
        <bindingRedirect oldVersion="0.0.0.0-4.0.1.0" newVersion="4.0.1.0" />
      </dependentAssembly>
    </assemblyBinding>
  </runtime>
  <akka>
    <hocon>
      <![CDATA[
          akka {

            stdout-loglevel = INFO
            loglevel = INFO
            # this config section will be referenced as akka.actor
            actor {
              provider = remote
              debug {
                  receive = on
                  autoreceive = on
                  lifecycle = on
                  event-stream = on
                  unhandled = on
              }
            }
            # here we're configuring the Akka.Remote module
            remote {
              dot-netty.tcp {
                  transport-class = "Akka.Remote.Transport.DotNetty.DotNettyTransport,Akka.Remote"
                  #applied-adapters = []
                  transport-protocol = tcp
                  port = 9090
                  hostname = "127.0.0.1"
              }
            }
          }
      ]]>
    </hocon>
  </akka>

</configuration>

如果我做错了什么,我将不胜感激。谢谢。

编辑:这里是堆栈跟踪:

" 在 Akka.Remote.EndpointManager.get_Listens()\r\n--- 从先前引发异常的位置结束堆栈跟踪 ---\r\n 在 Akka.Remote.EndpointManager.c__DisplayClass48_0。 b__0()\r\n 在 System.Threading.Tasks.Task`1.InnerInvoke()\r\n 在 System.Threading.Tasks.Task.Execute()"

【问题讨论】:

  • 您解决了这个问题吗?

标签: c# akka.net akka.net-networking


【解决方案1】:

您的传输配置似乎不正确。而不是指定传输,您应该通过删除

来使用默认传输
#transport-class = "Akka.Remote.Transport.DotNetty.DotNettyTransport,Akka.Remote"

基本配置使用 Akka.Remote.Transport.DotNetty.TcpTransport,Akka.Remote 您不需要在配置中明确定义它,除非有原因。

【讨论】:

    猜你喜欢
    • 2020-06-28
    • 2015-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-02-23
    • 2017-09-10
    • 1970-01-01
    • 2016-08-23
    相关资源
    最近更新 更多