本文整理汇总了C#中Orleans.Runtime.Host.SiloHost.LoadOrleansConfig方法的典型用法代码示例。如果您正苦于以下问题:C# SiloHost.LoadOrleansConfig方法的具体用法?C# SiloHost.LoadOrleansConfig怎么用?C# SiloHost.LoadOrleansConfig使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Orleans.Runtime.Host.SiloHost
的用法示例。
在下文中一共展示了SiloHost.LoadOrleansConfig方法的8个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: Main
private static void Main()
{
while (true)
{
Console.WriteLine("请输入配置文件名称:");
var configName = Console.ReadLine();
var configFile = new FileInfo(Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
$"{Path.GetFileNameWithoutExtension(configName)}.xml"));
if (!configFile.Exists)
{
Console.WriteLine($"配置文件:{configFile.FullName},不存在!");
continue;
}
Console.WriteLine("请输入节点名称:");
var nodeName = Console.ReadLine() ?? string.Empty;
using (var host = new SiloHost(nodeName, configFile))
{
host.LoadOrleansConfig();
host.InitializeOrleansSilo();
host.StartOrleansSilo();
Console.WriteLine("已启动,按下任意键退出。");
Console.ReadLine();
host.StopOrleansSilo();
}
break;
}
}
示例2: Main
private static void Main(string[] args){
using (SiloHost host = new SiloHost("Default")){
host.LoadOrleansConfig();
host.InitializeOrleansSilo();
host.StartOrleansSilo();
Console.WriteLine("Start--------");
Console.ReadLine();
host.StopOrleansSilo();
}
}
示例3: OrleansHostWrapper
public OrleansHostWrapper(ClusterConfiguration config, string[] args)
{
var siloArgs = SiloArgs.ParseArguments(args);
if (siloArgs == null)
{
return;
}
if (siloArgs.DeploymentId != null)
{
config.Globals.DeploymentId = siloArgs.DeploymentId;
}
siloHost = new SiloHost(siloArgs.SiloName, config);
siloHost.LoadOrleansConfig();
}
示例4: InitSilo
private static void InitSilo(string[] args)
{
_host = new SiloHost(Dns.GetHostName())
{
ConfigFileName = "OrleansConfiguration.xml"
};
_host.LoadOrleansConfig();
_host.InitializeOrleansSilo();
if (_host.StartOrleansSilo())
{
Console.WriteLine($"Started host {_host.Name} as a {_host.Type} node");
}
else
{
Console.WriteLine($"Failed to start host {_host.Name}");
}
}
示例5: InitSilo
private static void InitSilo(string[] args)
{
var configFile = Path.Combine(Path.GetDirectoryName(Assembly.GetCallingAssembly().Location) , "OrleansConfiguration.xml");
_host = new SiloHost(Dns.GetHostName())
{
ConfigFileName = configFile
};
_host.LoadOrleansConfig();
_host.InitializeOrleansSilo();
if (_host.StartOrleansSilo())
{
Console.WriteLine($"Started host {_host.Name} as a {_host.Type} node");
}
else
{
Console.WriteLine($"Failed to start host {_host.Name}");
}
}
示例6: Main
static void Main(string[] args)
{
while (true)
{
Console.WriteLine("请输入配置文件名称:");
var configName = Console.ReadLine();
configName = string.IsNullOrEmpty(configName) ? "OrleansConfiguration" : configName;
var configFile = new FileInfo(
Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
string.Format("{0}.xml", configName)));
if (!configFile.Exists)
{
Console.WriteLine("配置文件:{0} 不存在", configFile.Name);
continue;
}
Console.WriteLine("请输入节点名称");
var nodeName = Console.ReadLine() ?? string.Empty;
using (var host = new SiloHost(nodeName, configFile))
{
host.LoadOrleansConfig();
host.InitializeOrleansSilo();
host.StartOrleansSilo();
Console.WriteLine("已启动,按下任意键退出");
Console.ReadLine();
host.StopOrleansSilo();
}
}
//AppDomain hostDomain=AppDomain.CreateDomain("OrleansHost",null,new AppDomainSetup()
//{
// AppDomainInitializer =InitSilo
//});
//DoSomeClientWork();
//Console.WriteLine("Orleans Silo is running.\nPress Enter to terminate...");
//Console.ReadLine();
//hostDomain.DoCallBack(ShutdownSilo);
}
示例7: Start
/// <summary>
/// Initialize this Orleans silo for execution with the specified Azure deploymentId
/// </summary>
/// <param name="config">If null, Config data will be read from silo config file as normal, otherwise use the specified config data.</param>
/// <param name="deploymentId">Azure DeploymentId this silo is running under</param>
/// <returns><c>true</c> is the silo startup was successful</returns>
public bool Start(ClusterConfiguration config, string deploymentId = null)
{
// Program ident
Trace.TraceInformation("Starting {0} v{1}", this.GetType().FullName, RuntimeVersion.Current);
// Check if deployment id was specified
if (deploymentId == null)
deploymentId = serviceRuntimeWrapper.DeploymentId;
// Read endpoint info for this instance from Azure config
string instanceName = serviceRuntimeWrapper.InstanceName;
// Configure this Orleans silo instance
if (config == null)
{
host = new SiloHost(instanceName);
host.LoadOrleansConfig(); // Load config from file + Initializes logger configurations
}
else
{
host = new SiloHost(instanceName, config); // Use supplied config data + Initializes logger configurations
}
IPEndPoint myEndpoint = serviceRuntimeWrapper.GetIPEndpoint(SiloEndpointConfigurationKeyName);
IPEndPoint proxyEndpoint = serviceRuntimeWrapper.GetIPEndpoint(ProxyEndpointConfigurationKeyName);
host.SetSiloType(Silo.SiloType.Secondary);
int generation = SiloAddress.AllocateNewGeneration();
// Bootstrap this Orleans silo instance
myEntry = new SiloInstanceTableEntry
{
DeploymentId = deploymentId,
Address = myEndpoint.Address.ToString(),
Port = myEndpoint.Port.ToString(CultureInfo.InvariantCulture),
Generation = generation.ToString(CultureInfo.InvariantCulture),
HostName = host.Config.GetConfigurationForNode(host.Name).DNSHostName,
ProxyPort = (proxyEndpoint != null ? proxyEndpoint.Port : 0).ToString(CultureInfo.InvariantCulture),
RoleName = serviceRuntimeWrapper.RoleName,
InstanceName = instanceName,
UpdateZone = serviceRuntimeWrapper.UpdateDomain.ToString(CultureInfo.InvariantCulture),
FaultZone = serviceRuntimeWrapper.FaultDomain.ToString(CultureInfo.InvariantCulture),
StartTime = TraceLogger.PrintDate(DateTime.UtcNow),
PartitionKey = deploymentId,
RowKey = myEndpoint.Address + "-" + myEndpoint.Port + "-" + generation
};
var connectionString = serviceRuntimeWrapper.GetConfigurationSettingValue(DataConnectionConfigurationSettingName);
try
{
siloInstanceManager = OrleansSiloInstanceManager.GetManager(
deploymentId, connectionString).WithTimeout(AzureTableDefaultPolicies.TableCreationTimeout).Result;
}
catch (Exception exc)
{
var error = String.Format("Failed to create OrleansSiloInstanceManager. This means CreateTableIfNotExist for silo instance table has failed with {0}",
TraceLogger.PrintException(exc));
Trace.TraceError(error);
logger.Error(ErrorCode.AzureTable_34, error, exc);
throw new OrleansException(error, exc);
}
// Always use Azure table for membership when running silo in Azure
host.SetSiloLivenessType(GlobalConfiguration.LivenessProviderType.AzureTable);
host.SetReminderServiceType(GlobalConfiguration.ReminderServiceProviderType.AzureTable);
host.SetExpectedClusterSize(serviceRuntimeWrapper.RoleInstanceCount);
siloInstanceManager.RegisterSiloInstance(myEntry);
// Initialise this Orleans silo instance
host.SetDeploymentId(deploymentId, connectionString);
host.SetSiloEndpoint(myEndpoint, generation);
host.SetProxyEndpoint(proxyEndpoint);
host.InitializeOrleansSilo();
logger.Info(ErrorCode.Runtime_Error_100288, "Successfully initialized Orleans silo '{0}' as a {1} node.", host.Name, host.Type);
return StartSilo();
}
示例8: Start
/// <summary>
/// Initialize this Orleans silo for execution with the specified Azure deploymentId
/// </summary>
/// <param name="config">If null, Config data will be read from silo config file as normal, otherwise use the specified config data.</param>
/// <param name="deploymentId">Azure DeploymentId this silo is running under</param>
/// <param name="connectionString">Azure DataConnectionString. If null, defaults to the DataConnectionString setting from the Azure configuration for this role.</param>
/// <returns><c>true</c> if the silo startup was successful</returns>
internal bool Start(ClusterConfiguration config, string deploymentId, string connectionString)
{
if (config != null && deploymentId != null)
throw new ArgumentException("Cannot use config and deploymentId on the same time");
// Program ident
Trace.TraceInformation("Starting {0} v{1}", this.GetType().FullName, RuntimeVersion.Current);
// Read endpoint info for this instance from Azure config
string instanceName = serviceRuntimeWrapper.InstanceName;
// Configure this Orleans silo instance
if (config == null)
{
host = new SiloHost(instanceName);
host.LoadOrleansConfig(); // Load config from file + Initializes logger configurations
}
else
{
host = new SiloHost(instanceName, config); // Use supplied config data + Initializes logger configurations
}
IPEndPoint myEndpoint = serviceRuntimeWrapper.GetIPEndpoint(SiloEndpointConfigurationKeyName);
IPEndPoint proxyEndpoint = serviceRuntimeWrapper.GetIPEndpoint(ProxyEndpointConfigurationKeyName);
host.SetSiloType(Silo.SiloType.Secondary);
int generation = SiloAddress.AllocateNewGeneration();
// Bootstrap this Orleans silo instance
// If deploymentId was not direclty provided, take the value in the config. If it is not
// in the config too, just take the DeploymentId from Azure
if (deploymentId == null)
deploymentId = host.Config.Globals.DeploymentId ?? serviceRuntimeWrapper.DeploymentId;
myEntry = new SiloInstanceTableEntry
{
DeploymentId = deploymentId,
Address = myEndpoint.Address.ToString(),
Port = myEndpoint.Port.ToString(CultureInfo.InvariantCulture),
Generation = generation.ToString(CultureInfo.InvariantCulture),
HostName = host.Config.GetOrCreateNodeConfigurationForSilo(host.Name).DNSHostName,
ProxyPort = (proxyEndpoint != null ? proxyEndpoint.Port : 0).ToString(CultureInfo.InvariantCulture),
RoleName = serviceRuntimeWrapper.RoleName,
SiloName = instanceName,
UpdateZone = serviceRuntimeWrapper.UpdateDomain.ToString(CultureInfo.InvariantCulture),
FaultZone = serviceRuntimeWrapper.FaultDomain.ToString(CultureInfo.InvariantCulture),
StartTime = LogFormatter.PrintDate(DateTime.UtcNow),
PartitionKey = deploymentId,
RowKey = myEndpoint.Address + "-" + myEndpoint.Port + "-" + generation
};
if (connectionString == null)
connectionString = serviceRuntimeWrapper.GetConfigurationSettingValue(DataConnectionConfigurationSettingName);
try
{
siloInstanceManager = OrleansSiloInstanceManager.GetManager(
deploymentId, connectionString).WithTimeout(AzureTableDefaultPolicies.TableCreationTimeout).Result;
}
catch (Exception exc)
{
var error = String.Format("Failed to create OrleansSiloInstanceManager. This means CreateTableIfNotExist for silo instance table has failed with {0}",
LogFormatter.PrintException(exc));
Trace.TraceError(error);
logger.Error(ErrorCode.AzureTable_34, error, exc);
throw new OrleansException(error, exc);
}
// Always use Azure table for membership when running silo in Azure
host.SetSiloLivenessType(GlobalConfiguration.LivenessProviderType.AzureTable);
if (host.Config.Globals.ReminderServiceType == GlobalConfiguration.ReminderServiceProviderType.NotSpecified ||
host.Config.Globals.ReminderServiceType == GlobalConfiguration.ReminderServiceProviderType.ReminderTableGrain)
{
host.SetReminderServiceType(GlobalConfiguration.ReminderServiceProviderType.AzureTable);
}
host.SetExpectedClusterSize(serviceRuntimeWrapper.RoleInstanceCount);
siloInstanceManager.RegisterSiloInstance(myEntry);
// Initialize this Orleans silo instance
host.SetDeploymentId(deploymentId, connectionString);
host.SetSiloEndpoint(myEndpoint, generation);
host.SetProxyEndpoint(proxyEndpoint);
host.InitializeOrleansSilo();
return StartSilo();
}