我正在编写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()
中提前致谢!
答案 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