C# 使用WebRole.cs在“中运行自定义代码时”;OnStart()“;,建议使用什么方法调用base.OnStart()?
使用C# 使用WebRole.cs在“中运行自定义代码时”;OnStart()“;,建议使用什么方法调用base.OnStart()?,c#,azure,azure-web-roles,C#,Azure,Azure Web Roles,使用WebRole.cs配置IIS时,建议使用什么方法调用base.OnStart() 或 换句话说,“考虑基类的返回值有意义吗?” 我(我认为)经历过这样的行为:有时基函数必须返回false,而我的代码从未被调用。根据对base的调用。OnStart是该方法的最后一条语句。 这些方法与API一样提供。RoleEntryPoint是一个抽象类,具有默认的单行实现(或者根本没有实现)。此外,您将看到,如果返回False,您的角色实例将被停止(从而导致角色循环并无法启动)。最后一个文件: 通常,应该
WebRole.cs
配置IIS时,建议使用什么方法调用base.OnStart()
或
换句话说,“考虑基类的返回值有意义吗?”
我(我认为)经历过这样的行为:有时基函数必须返回false
,而我的代码从未被调用。根据对base的调用。OnStart
是该方法的最后一条语句。
这些方法与API一样提供。RoleEntryPoint是一个抽象类,具有默认的单行实现(或者根本没有实现)。此外,您将看到,如果返回False,您的角色实例将被停止(从而导致角色循环并无法启动)。最后一个文件:
通常,应该避免从OnStart方法返回false
如果您(选择.NET反编译器)查看RoleEntryPoint的源代码,就会发现OnStart的默认实现只返回true:
using System.Threading;
namespace Microsoft.WindowsAzure.ServiceRuntime
{
public abstract class RoleEntryPoint
{
public virtual bool OnStart()
{
return true;
}
public virtual void Run()
{
Thread.Sleep(-1);
}
public virtual void OnStop()
{
}
}
}
它与SDK的v.2.4兼容。从早期的1.xx版本开始就是这样 这取决于您的体系结构。如果您的代码应该始终运行,请选择第一个代码。如果您关心基本代码的输出,请选择第二个代码块。如果您可以共享RunMyCode()的功能,我们可以为您提供更多的输入。RunMyCode()可配置应用池,例如设置循环和空闲超时选项。
public class WebRole : Microsoft.WindowsAzure.ServiceRuntime.RoleEntryPoint
{
public override bool OnStart()
{
var result = base.OnStart();
if (result == true) { RunMyCode(); }
return result;
}
}
using System.Threading;
namespace Microsoft.WindowsAzure.ServiceRuntime
{
public abstract class RoleEntryPoint
{
public virtual bool OnStart()
{
return true;
}
public virtual void Run()
{
Thread.Sleep(-1);
}
public virtual void OnStop()
{
}
}
}