首页 > 解决方案 > Azure WebJobs 和 ApplicationInsights

问题描述

我有以下代码:

public static void Main()
    {          

        _servicesBusConnectionString = ConfigurationManager.AppSettings["Microsoft.ServiceBus.ConnectionString"];
        _namespaceManager = NamespaceManager.CreateFromConnectionString(_servicesBusConnectionString);
        _applicationInsightsInstrumentationKey = ConfigurationManager.AppSettings["appInsightsInstrumentationKey"];

        JobHostConfiguration config = new JobHostConfiguration();

        ServiceBusConfiguration serviceBusConfig = new ServiceBusConfiguration
        {
            ConnectionString = _servicesBusConnectionString
        };

        config.UseServiceBus(serviceBusConfig);
        config.LoggerFactory = new LoggerFactory()
            .AddApplicationInsights(_applicationInsightsInstrumentationKey, null)
            .AddConsole();
        config.Tracing.ConsoleLevel = TraceLevel.Off;


        var host = new JobHost(config);

        host.RunAndBlock();
    }

并在功能上:

public static async Task ProcessMessages([ServiceBusTrigger(ServiceBusQueueNames.SomeQueueName)]BrokeredMessage brokeredMessage, TextWriter log)
    {
        try
        {

            _log = log;

            _log.WriteLine("WebJob started processing of a message");

            await _log.FlushAsync();}

它将消息记录到控制台,但不记录到 ApplicationInsights。仪表键设置正确。

你能说一下为什么它不登录到 ApplicationInsights 吗?

我已经相应地编写了这段代码https://github.com/Azure/azure-webjobs-sdk/wiki/Application-Insights-Integration

标签: azureazure-webjobsazure-application-insights

解决方案


首先要检查:您的仪器密钥在运行时是否有效?

然后,如果 ikey 是您所期望的,它是否是您期望的资源(您不是在查看开发应用程序洞察实例,而是遥测将发送到产品实例?)

如果您在本地进行调试,您是否看到应用程序洞察程序集正在加载?您是否在调试器运行时看到来自应用程序洞察的控制台输出?


推荐阅读