来自非Web应用程序的Application Insights返回404

时间:2016-06-15 09:36:16

标签: c# azure azure-application-insights telemetry

我正在编写Azure webJob,它在部署之前最终是一个控制台应用程序。我正在尝试将Application Insights添加到此,以便我可以获得遥测结果。但是,由于这不是任何类型的Web应用程序,遥测不是该项目的公认部分。

当我尝试手动添加遥测并设置TelemetryConfiguration.Active框架的任何细节时,我会看到以下错误:

TelemetryConfiguration.Active.InstrumentationKey = settingsKey;

Exception:
'Microsoft.WindowsAzure.Storage.StorageException' in Microsoft.WindowsAzure.Storage.dll
Additional information: The remote server returned an error: (404) Not Found.

但是,如果我在解决方案中运行ODATA mvc应用程序,则所有遥测技术都可以“开箱即用”。

如何通过SDK设置Insights的任何方向都非常有用,因为我很难为非网络应用程序示例找到合适的文档。

主机代码本身基于Web作业的标准示例:

JobHost host = new JobHost();
host.Start();
var task = host.CallAsync(typeof(Functions).GetMethod("MessageHandlingLoop")); 
task.Wait();
host.Stop();

遥测代码然后在MessageHandlingLoop()

提前致谢!

1 个答案:

答案 0 :(得分:0)

您提到的堆栈跟踪不是来自ApplicationInsights。 SDK不使用WindowsAzure.Storage。

就例子而言。以下是文档:https://azure.microsoft.com/en-gb/documentation/articles/app-insights-windows-desktop/

此外,您还可以了解如何检测工作者角色(它比控制台示例更接近控制台):https://github.com/Microsoft/ApplicationInsights-Home/tree/master/Samples/AzureEmailService