Azure WebJobs SDK最近有什么变化,遗漏了AzureJobsDashboard连接字符串?直到最近,如果遗漏了这个连接字符串,WebJobs仪表板将不会显示/存储任何调用日志等.现在,如果删除此连接字符串,WebJob将无法启动...是否有其他人注意到这一点或找到了解决方法?
我不希望在调用日志中记录任何队列消息,所以有兴趣听听其他人是否已经取得类似的东西?
谢谢,菲尔.
我的Azure WebJob始终以退出代码-2146232576失败.有谁知道退出代码与什么有关?
我正按计划运行它,我的源代码可以在这里找到:
https://github.com/luke-barnett/trakt-imdb250/tree/master/TrakIMDB250.Scraper
相关日志:
[06/15/2015 10:51:51 > 1e531f: SYS INFO] Status changed to Initializing
[06/15/2015 10:51:53 > 1e531f: SYS INFO] Run script
'TrakIMDB250.Scraper.exe' with script host - 'WindowsScriptHost'
[06/15/2015 10:51:53 > 1e531f: SYS INFO] Status changed to Running
[06/15/2015 10:51:53 > 1e531f: SYS INFO] Status changed to Failed
[06/15/2015 10:51:53 > 1e531f: SYS ERR ] Job failed due to exit code -2146232576
Run Code Online (Sandbox Code Playgroud)
相关代码:
Program.cs中
using Microsoft.Azure.WebJobs;
namespace TrakIMDB250.Scraper
{
class Program
{
static void Main(string[] args)
{
var config …Run Code Online (Sandbox Code Playgroud) 这是我第一次使用WebJob类型的应用程序.我创建了一个webjob项目,并在解决方案中附带Program.cs和Function.cs.
我已经删除了,Function.cs因为在这个项目中没有队列,我将从中获取数据.
现在Program.cs已有Main方法如下:
class Program
{
// Please set the following connection strings in app.config for this WebJob to run:
// AzureWebJobsDashboard and AzureWebJobsStorage
static void Main()
{
var host = new JobHost();
// The following code ensures that the WebJob will be running continuously
host.RunAndBlock();
}
}
Run Code Online (Sandbox Code Playgroud)
据我所知,这RunAndBlock是连续运行webjob,但我希望这项工作只运行一次.我想按计划从外部控制执行.我想知道如何让我的代码只运行一次?如下所示,我有一个SupportServiceClass RunOnePoolProvisioingCycle,我想只调用一次这个方法.这是正确的方法吗?
static void Main()
{
SupportService _supportService = new SupportService();
_supportService.Initialize();
_supportService.SetPoolProvisioningConfigurations();
_supportService.RunOnePoolProvisioningCycle();
}
Run Code Online (Sandbox Code Playgroud)
还是这个?
static void Main() …Run Code Online (Sandbox Code Playgroud) 我一直在使用Azure webjobs一段时间,但仍然在努力弄清楚为什么一些运行时间非常长的Web作业失败.
我有使用Azure SDK构建的webjob,并从队列消息中获取.这个Web作业从Azure Blob存储中提取一大堆XML,其中包含有关110000项的信息,然后循环使用这些并使用REST WebApi2端点使各种HttpClient请求在我们的表存储和DocumentDB中创建各种实体...这个过程是懒惰我正在研究的东西,但它运行了好几天......这很好,因为没有紧迫感,除了它保持随机停止,有时两天后...最后一次唯一的消息是"线程被中止".我定期注销和http调用所以它不像工作坐在那里什么都不做...... 更新:
我还应该声明我已将整个应用服务计划升级到S1并将托管Web作业的Web应用程序设置为Always On ...
我也查看了"WEBJOBS_RESTART_TIME",但这不相关,因为它是关于停止后重新启动,我假设连续工作没有错误不应该做!
我一直在使用Azure存储队列来使用该QueueTrigger属性来提供WebJob .我将我配置QueueTrigger为出列并发处理多个项目,如下所示:
public static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.NameResolver = new QueueNameResolver();
config.Queues.NewBatchThreshold = 10;
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public static void ExecuteStorageQueueItem([QueueTrigger("%AzureQueueName%")] CloudQueueMessage message, TextWriter logger)
{
ProcessRequest(message.AsString, logger);
}
Run Code Online (Sandbox Code Playgroud)
我更喜欢使用Service Bus.MaxConcurrentCalls参数on 是否ServiceBusConfiguration允许相同的自动并行执行?例如:
public static void Main()
{
JobHostConfiguration config = new JobHostConfiguration();
config.NameResolver = new QueueNameResolver();
ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration();
serviceBusConfig.MessageOptions.MaxConcurrentCalls = 10;
config.UseServiceBus(serviceBusConfig);
JobHost host = new JobHost(config);
host.RunAndBlock();
}
public …Run Code Online (Sandbox Code Playgroud) servicebus azure azureservicebus azure-webjobs azure-webjobssdk
azure-functions是Azure上的一种特殊类型的App Service.另一个主要的Azure应用服务(web和api)支持在足够的应用服务计划(S1及更高版本)上的多个部署插槽.这似乎也是天蓝色函数的一个选项,但我找不到配置区域.我只是没有找到它或功能上不适用于天蓝色功能?
我想在作为Service Fabric应用程序运行的无状态服务中使用WebJob SDK。不幸的是,我无法使其正常运行。下面是重现该问题的测试代码的一部分。永远不会调用“ ProcessMethod”。触发函数“ ProcessNotificationsInQueue”也永远不会执行(是的,队列中有项目)。尽管该应用程序仍在运行,但在Service Fabric资源管理器中将其“运行状况”设置为“错误”。
DashboardConnectionString和StorageConnectionString都具有正确的值。
当它在控制台应用程序或WorkerRole中运行时,我没有看到非常相似的代码有任何问题。
我想念什么吗?是否有人已经在Service Fabric应用程序中成功使用了WebJob SDK?
public sealed class TestStatelessService : StatelessService
{
public TestStatelessService(StatelessServiceContext context)
: base(context)
{ }
/// <summary>
/// Optional override to create listeners (e.g., TCP, HTTP) for this service replica to handle client or user requests.
/// </summary>
/// <returns>A collection of listeners.</returns>
protected override IEnumerable<ServiceInstanceListener> CreateServiceInstanceListeners()
{
return new ServiceInstanceListener[0];
}
/// <summary>
/// This is the main entry point for your service instance.
/// </summary>
/// <param name="cancellationToken">Canceled …Run Code Online (Sandbox Code Playgroud) 我有webjobs SDK的最简单示例,应该在将新文件放在输入blob容器上并将其复制到另一个文件时触发。
下面是代码和App.config,其中帐户名和密钥被有意地编辑为XXX。
问题是,当我在本地运行时,出现以下异常。
未处理System.InvalidOperationException HResult = -2146233079消息= Microsoft Azure WebJobs SDK仪表板连接字符串丢失或为空。
我已经尝试过:
我今天刚刚安装了最新版本的SDK(我相信是2.9)。这是一台新机器,我只是在学习Azure和WebJobs,所以好像以前我并没有在这台机器上工作过很多复杂的场景。
在这一点上,我很茫然。非常感谢您的任何帮助,谢谢。
码:
using Microsoft.Azure.WebJobs;
using System.IO;
namespace TestWebJob1
{
class Program
{
static void Main(string[] args)
{
JobHost host = new JobHost();
host.RunAndBlock();
}
public static void CopyCopy([BlobTrigger("testinput/{name}")] TextReader input, [Blob("testoutput/{name}")] out string output)
{
output = input.ReadToEnd();
}
}
}
Run Code Online (Sandbox Code Playgroud)
App.config
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<startup>
<supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.6.1" />
</startup>
<connectionStrings>
<add name="AzureWebJobsDashboard" connectionString="DefaultEndpointsProtocol=https;AccountName=XXXX;AccountKey=XXX" />
</connectionStrings>
</configuration>
Run Code Online (Sandbox Code Playgroud) 试图让Azure Webjobs对传入的Service Bus事件作出反应,我通过点击F5来运行它.我在启动时收到错误.
找不到工作职能.尝试公开您的工作类和方法.如果您正在使用绑定扩展(例如ServiceBus,Timers等),请确保您已在启动代码中调用扩展的注册方法(例如config.UseServiceBus(),config.UseTimers()等).
我的函数类看起来像这样:
public class Functions
{
// This function will get triggered/executed when a new message is written
// on an Azure Queue called queue.
public static void ProcessQueueMessage([ServiceBusTrigger("test-from-dynamics-queue")] BrokeredMessage message, TextWriter log)
{
log.WriteLine(message);
}
}
Run Code Online (Sandbox Code Playgroud)
我将每个班级和方法设置为公开
我config.UseServiceBus();在program.cs文件中调用
我正在使用Microsoft.Azure.WebJobs v 1.1.2
((我不完全确定我已经编写了正确的AzureWebJobsDashboard-和AzureWebJobsStorage-connectionstrings,我从Azure门户网站中唯一的Azure存储设置中获取它们.如果这可能是问题,我应该在哪里获得它们))
如何将应用程序见解遥测(Application Insights)添加到天蓝色的webjob?