Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/274.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# 有没有办法将输入插入到持续运行的webjob中?_C#_.net_Azure_C# 4.0_Azure Webjobs - Fatal编程技术网

C# 有没有办法将输入插入到持续运行的webjob中?

C# 有没有办法将输入插入到持续运行的webjob中?,c#,.net,azure,c#-4.0,azure-webjobs,C#,.net,Azure,C# 4.0,Azure Webjobs,我在azure上托管了一个简单的webjob,作为一个持续运行的作业 我需要传递令牌值作为输入,如何使用连续web作业实现这一点 static void Main(string[] args) { try { Console.WriteLine("Goto Login url" + kite.GetLoginURL()); Console.WriteLine(&q

我在azure上托管了一个简单的webjob,作为一个持续运行的作业

我需要传递令牌值作为输入,如何使用连续web作业实现这一点

static void Main(string[] args)
        {
             try
            {
            Console.WriteLine("Goto Login url" + kite.GetLoginURL());
            Console.WriteLine("Enter request token: ");
            string requestToken = Console.ReadLine();

我认为不可能使用webjobs(continuos job),除非您运行了一些web服务器,可以对其发出请求(例如sinatra、aspnet core等)。您需要将Azure函数与HTTP触发器一起使用。然后,您可以在查询字符串或请求正文中传递令牌,并执行您需要执行的操作。

我认为使用webjobs(continuos作业)是不可能的,除非您有一些运行的web服务器,您可以对其发出请求(例如sinatra、aspnet core等)。您需要将Azure函数与HTTP触发器一起使用。然后,您可以在querystring或请求正文中传递令牌,并执行您需要执行的操作。

Webjob是后台服务,因此您不能使用
Console.ReadLine()接受用户输入。由于WebJob没有类似于Azure的HTTP触发器功能,因此我认为向WebJob传递消息/输入的唯一替代方法是使其成为事件驱动的,就像在接收队列消息时使用and do处理一样。有关详细信息,请参阅此

下面将.net core 3.1与web作业sdk v3一起使用。有关旧sdk的等效代码,请参阅

队列触发的作业:

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

namespace WebJobsSDKSample
{
    public class Functions
    {
        public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
        {
            // do stuffs with message
            logger.LogInformation(message);
        }
    }
}
Program.cs

using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;

namespace WebJobsSDKSample
{
    public class Program
    {
        static async Task Main()
        {
          var builder = new HostBuilder();
          builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
            });
          var host = builder.Build();
          using (host)
          {
            await host.RunAsync();
          }
       }
    }
}

您也可以浏览一些旧的示例。但是这些示例使用的是v1 SDK。

Webjob是后台服务,因此您无论如何都不能使用
Console.ReadLine()
获取用户输入。由于WebJob没有类似于Azure的HTTP触发器功能,因此我认为向WebJob传递消息/输入的唯一替代方法是使其成为事件驱动的,就像在接收队列消息时使用and do处理一样。有关详细信息,请参阅此

下面将.net core 3.1与web作业sdk v3一起使用。有关旧sdk的等效代码,请参阅

队列触发的作业:

using Microsoft.Azure.WebJobs;
using Microsoft.Extensions.Logging;

namespace WebJobsSDKSample
{
    public class Functions
    {
        public static void ProcessQueueMessage([QueueTrigger("queue")] string message, ILogger logger)
        {
            // do stuffs with message
            logger.LogInformation(message);
        }
    }
}
Program.cs

using System.Threading.Tasks;
using Microsoft.Extensions.Hosting;

namespace WebJobsSDKSample
{
    public class Program
    {
        static async Task Main()
        {
          var builder = new HostBuilder();
          builder.ConfigureWebJobs(b =>
            {
                b.AddAzureStorageCoreServices();
            });
          var host = builder.Build();
          using (host)
          {
            await host.RunAsync();
          }
       }
    }
}

您也可以浏览一些旧的示例。但这些示例使用的是v1 SDK。

感谢您的宝贵意见。我可以使用kudu cmd手动运行和传递它吗?感谢您的宝贵意见。我可以使用kudu cmd手动运行和传递它吗?