Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/305.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 使用WebRole.cs在“中运行自定义代码时”;OnStart()“;,建议使用什么方法调用base.OnStart()?_C#_Azure_Azure Web Roles - Fatal编程技术网

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()
    {
    }
  }
}