C# 未设置.NET Framework Windows服务器云角色名
我正在尝试在.NET 4.8 Framework Windows服务(例如控制台应用程序等)中将cloud_RoleName添加到我的Application Insights telemetry中。我正在使用nuget包Microsoft.ApplicationInsights.WindowsServer和ApplicationInsights.config来配置所有内容,但我无法填充角色名 我试着用这个:C# 未设置.NET Framework Windows服务器云角色名,c#,azure-application-insights,C#,Azure Application Insights,我正在尝试在.NET 4.8 Framework Windows服务(例如控制台应用程序等)中将cloud_RoleName添加到我的Application Insights telemetry中。我正在使用nuget包Microsoft.ApplicationInsights.WindowsServer和ApplicationInsights.config来配置所有内容,但我无法填充角色名 我试着用这个: <TelemetryInitializers> <Add
<TelemetryInitializers>
<Add Type="Microsoft.ApplicationInsights.WindowsServer.AzureRoleEnvironmentTelemetryInitializer, Microsoft.AI.WindowsServer"/>
</TelemetryInitializers>
错误-2147024894似乎是“未找到文件”类型的错误
云角色名仍然是空的好的,我现在有一个让AzureRoleEnvironmentTelemetryInitializer无误加载的解决方案,但不幸的是,它似乎没有填充云角色名,所以我不得不尝试其他方法(见下文) 修复方法是: 1-app.config中的特殊属性
<startup useLegacyV2RuntimeActivationPolicy="true">
这有助于AzureRoleEnvironmentTelemetryInitializer加载(不再出现错误),但确实解决了我实际遇到的RoleName为空的问题
我必须添加一些自定义代码才能使其正常工作:
public class MyWebTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "MyRoleName";
}
}
然后将自定义ITelemetryInitializer添加到ApplicationInsights.config中:
<TelemetryInitializers>
<Add Type="MyNamespace.MyWebTelemetryInitializer, FrameworkConsoleApp3"/>
...
</TelemetryInitializers>
...
现在“ai.cloud.role”:“MyRoleName”出现在遥测=喜悦中!这似乎也解决了“应用程序映射”的问题——我不再有一个节点按照上面的图片调用自己了
如果有人能告诉我,我仍然对如何以“正确的方式”做到这一点感兴趣,我将不胜感激强>
Environment.SetEnvironmentVariable("WEBSITE_SITE_NAME", "UndocumentedEnvironmentVariablesAreNotGreat");
public class MyWebTelemetryInitializer : ITelemetryInitializer
{
public void Initialize(ITelemetry telemetry)
{
telemetry.Context.Cloud.RoleName = "MyRoleName";
}
}
<TelemetryInitializers>
<Add Type="MyNamespace.MyWebTelemetryInitializer, FrameworkConsoleApp3"/>
...
</TelemetryInitializers>