我正试图从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);
}
}
答案 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