1

我正在使用 Microsoft Orleans SDK 的 v1.0.5 版本,并且正在遵循在独立筒仓中运行Microsoft Orleans 教程

它提出了以下建议:

如果您将grain collection项目设置为启动项目并按F5,您会注意到它是由一个名为“OrleansHost”的silo启动和托管的。...

但据我所知,Grain Collection Project 是一个类库,自编写教程以来,这种情况发生了变化(我注意到它使用旧的 OrleansClient 而不是 GrainClient)。

下面的主要方法:

static void Main(string[] args){
    Console.WriteLine("Waiting`enter code here` for Orleans Silo to start. Press Enter to proceed...");
    Console.ReadLine();
    Orleans.OrleansClient.Initialize("DevTestClientConfiguration.xml");
}

我相信是针对 SiloHost 的。

4

1 回答 1

2

您必须同时设置为启动

  • 包含 Program.cs(客户端)的项目和
  • 粮食项目。

查看 Grain 项目的 Properties/Debug/Start external program(它应该类似于:C:\Orleans\SDK\LocalSilo\OrleansHost.exe),它将使用 SDK 中的本地 OrleansHost silo 启动grain .dll-s。

您可以在最后使用 CTRL-C 退出本地 OrleansHost 接收器。

编辑

Grain 项目的 .csproj 中有 3 行很重要:

    <StartAction>Program</StartAction>
    <StartProgram>$(OrleansSDK)\LocalSilo\OrleansHost.exe</StartProgram>
    <StartWorkingDirectory>$(OrleansSDK)\LocalSilo</StartWorkingDirectory>

这是由项目模板或 NuGet 包插入的,因此您无需编辑它们。仅在某些问题的情况下,例如。您重新定位了 Orleans SDK。

重新定位 SDK 时,修改 OrleansSDK 环境变量(控制面板/高级/环境变量/系统变量)而不是Grain 项目的属性!

于 2015-04-05T01:57:00.243 回答