我正在尝试为奥尔良设置一个使用SQL Server实现的测试环境。这是我的服务器配置文件:
<?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无法运行 - 请检查您的 silo配置文件,并确保它指定SeedNode元素。 或者,您可能希望将AzureTable用于LivenessType。 参数名称:grain = MembershipTableGrain异常= System.ArgumentException:如果没有Seed,则MembershipTableGrain无法运行 节点 - 请检查您的silo配置文件并确保它 指定SeedNode元素。或者,您可能想要使用 AzureTable for LivenessType。
进一步说,日志说Liveness是MembershipTableGrain(这是默认值并需要SeeNode)。我在这里缺少什么?
答案 0 :(得分:2)
我的SQLServer成员资格的silo配置如下所示
select * from
(
SELECT DISTINCT
RIGHT('0' + CAST(DATEPART(M, TableA.DateTime) AS varchar), 2)
+ RIGHT ('0' + Cast(DATEPART(DD, TableA.DateTime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(HH, TableA.DateTime) AS varchar), 2)
+ RIGHT('0' + CAST(DATEPART(MINUTE, TableA.DateTime) AS varchar), 2) AS [VarChar Number],
ColA, DateTime FROM TableA WHERE ColB IS NOT NULL
AND DateTime NOT IN (SELECT DateTime From TableB)
AND DateTime NOT IN (SELECT DateTime From tableC WHERE DateTime IS NOT NULL)
) t
where substring([VarChar Number], 6, 1) not in ('0','1','4','9')
无需指定活动类型。它通过查看SystemStoreType来计算出来。
客户端配置确实需要指定的网关
<?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>
答案 1 :(得分:1)
您还可以使用可编程API进行配置,而不是使用XML。
答案 2 :(得分:0)
我发现了问题。这不是如何改变活力类型。它应该是这样的:
<SystemStore SystemStoreType="SqlServer" DeploymentId="42783519-d64e-44c9-9c29-111111111133" DataConnectionString="Data Source=.\SQLEXPRESS;Initial Catalog=Orleans;Integrated Security=True;" />
<Liveness LivenessType="SqlServer" />
此外,您必须确保参考&#34; Microsoft.Orleans.OrleansSqlUtils&#34; NuGet打包并运行此SQL Create Script