3

我正在尝试为使用 SQL Server 的 Orleans 设置一个测试环境。这是我的服务器配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<OrleansConfiguration xmlns="urn:orleans">
  <Globals>
    <Liveness LivenessType="SqlServer" DeploymentId="42783519-d64e-44c9-9c29-111111111133" DataConnectionString="Data Source=.\\SQLEXPRESS;Initial Catalog=Orleans;Integrated Security=True;" />
    <!--<SeedNode Address="localhost" Port="11111" />-->
  </Globals>
  <Defaults>
    <Networking Address="localhost" Port="11111" />
    <ProxyingGateway Address="localhost" Port="30000" />
    <Tracing DefaultTraceLevel="Info" TraceToConsole="true" TraceToFile="{0}-{1}.log">
      <TraceLevelOverride LogPrefix="Application" TraceLevel="Info" />
    </Tracing>
    <Statistics MetricsTableWriteInterval="30s" PerfCounterWriteInterval="30s" LogWriteInterval="300s" WriteLogStatisticsToTable="true" />
  </Defaults>
  <Override Node="Primary">
    <Networking Address="localhost" Port="11111" />
    <ProxyingGateway Address="localhost" Port="30000" />
  </Override>
</OrleansConfiguration>

当我使用此配置时,运行时出现此错误:

MembershipTableGrain 无法在没有 Seed 节点的情况下运行 - 请检查您的 silo 配置文件并确保它指定了 SeedNode 元素。或者,您可能希望将 AzureTable 用于 LivenessType。参数名称:grain = MembershipTableGrain Exception = System.ArgumentException:MembershipTableGrain 不能在没有种子节点的情况下运行 - 请检查您的筒仓配置文件并确保它指定了 SeedNode 元素。或者,您可能希望将 AzureTable 用于 LivenessType。

更进一步,日志说 Liveness 是 MembershipTableGrain(这是默认设置,需要 SeeNode)。我在这里想念什么?

4

3 回答 3

2

我的 SQLServer 成员身份的筒仓配置如下所示

<?xml version="1.0" encoding="utf-8"?>
<OrleansConfiguration xmlns="urn:orleans">
    <Globals>
        <SystemStore SystemStoreType="SqlServer" DeploymentId="YYYYY" DataConnectionString="Server=THESERVER;Database=Orleans;User ID=USER;password=PASSWORD;"/>
    </Globals>
    <Defaults>
        <Networking Address="" Port="11111"/>
        <ProxyingGateway Address="" Port="30000"/>
    </Defaults>
</OrleansConfiguration>

无需指定活动类型。它通过查看 SystemStoreType 来确定。

客户端配置确实需要指定的网关

<ClientConfiguration xmlns="urn:orleans">

  <SystemStore SystemStoreType ="SqlServer" 
                 DeploymentId="YYY" 
                 DataConnectionString="Server=THESERVER;Database=Orleans;User ID=USER;password=PASSWORD;" />

  <GatewayProvider ProviderType="SqlServer"/>
</ClientConfiguration>
于 2016-01-06T19:10:03.640 回答
1

您还可以使用可编程 API 进行配置,而不是 XML。

于 2016-01-07T03:36:29.787 回答
0

我发现了问题。那不是如何更改 Liveness 类型。它应该是这样的:

<SystemStore SystemStoreType="SqlServer" DeploymentId="42783519-d64e-44c9-9c29-111111111133" DataConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Orleans;Integrated Security=True;" />
<Liveness LivenessType="SqlServer" />

此外,您必须确保引用“Microsoft.Orleans.OrleansSqlUtils”NuGet 包并运行此SQL 创建脚本

于 2016-01-06T16:16:18.890 回答