Azure Web作业使用参数从C#调用它

时间:2015-01-15 04:15:23

标签: c# azure azure-webjobs

我正试图从asp.net c#page调用一个webjob。当我检查日志时,它显示它运行但除了日志之外没有任何内容。它应该说“丹的电话号码是5551212”

[01/15/2015 14:29:18 > 898371: SYS INFO] Status changed to Initializing
[01/15/2015 14:29:20 > 898371: SYS INFO] Run script 'EncodeAsset.exe' with script host - 'WindowsScriptHost'
[01/15/2015 14:29:20 > 898371: SYS INFO] Status changed to Running
[01/15/2015 14:29:20 > 898371: SYS INFO] Status changed to Success

这是我的代码:

public partial class Test : System.Web.UI.Page
{

    protected void Button1_Click(object sender, EventArgs e)
    {
        Process myProcess = new Process();
        myProcess.StartInfo.FileName = @"D:\home\site\wwwroot\app_data\jobs\triggered\EncodeAsset\EncodeAsset.exe";
        myProcess.Start();
    }
}

class Program
{
    // Please set the following connection strings in app.config for this WebJob to run:
    // AzureWebJobsDashboard and AzureWebJobsStorage
    static void Main()
    {
    }

    public static void Testing([QueueTrigger("queuejobs")]string message)
    {
        Console.WriteLine("Dan's Phone Number is:", message);
    }
}

3 个答案:

答案 0 :(得分:2)

使用连续的WebJob,其想法是根据Azure存储队列或blob事件触发该功能,而不是直接从客户端代码调用该功能。在这里,您有一个QueueTrigger注释,它正在侦听queuejobs队列中的新消息。要调用WebJob函数,需要在同一队列中排队字符串消息。为此,您可以在Button1_Click处理程序中执行以下操作 (来自http://azure.microsoft.com/en-us/documentation/articles/storage-dotnet-how-to-use-queues):

// Retrieve storage account from connection string.
CloudStorageAccount storageAccount = CloudStorageAccount.Parse(
    CloudConfigurationManager.GetSetting("StorageConnectionString"));

// Create the queue client.
CloudQueueClient queueClient = storageAccount.CreateCloudQueueClient();

// Retrieve a reference to a queue.
CloudQueue queue = queueClient.GetQueueReference("queuejobs");

// Create the queue if it doesn't already exist.
queue.CreateIfNotExists();

// Create a message and add it to the queue. 
CloudQueueMessage message = new CloudQueueMessage("5551212");
queue.AddMessage(message);

答案 1 :(得分:2)

我建议使用Kudu API

  

要使用参数运行,请使用将在调用时添加到脚本的参数参数。它也作为WEBJOBS_COMMAND_ARGUMENTS环境变量传递给WebJob。

     

POST / api / triggeredwebjobs / {job name} / run?arguments = {arguments}

你的网址最终会是这样的。不要忘记传递凭据(如果下载发布配置文件,可以找到用户名和密码)。

https://{site}.scm.azurewebsites.net/api/triggeredwebjobs/{jobname}/run?arguments={arguments}

只取决于你想做什么

答案 2 :(得分:1)

这是MSDN上的一个非常简单的示例。希望能帮到你 https://code.msdn.microsoft.com/Simple-Azure-Website-with-b4391eeb