c# - 无法将应用程序洞察添加到服务结构无状态 asp.net 核心项目
问题描述
我正在尝试使用以下指南将应用程序见解添加到项目中。 https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-tutorial-monitoring-aspnet
我的项目是一个服务结构服务 => .net 框架 => 无状态 asp.net 核心如下: 服务结构项目菜单
包含该项目的服务结构已经工作并已发布。现在,当我添加应用程序洞察并在本地运行服务结构时,它已编译并运行,但 asp.net 服务不运行。在我启动服务结构大约一分钟后的诊断事件中,以下运行状况报告错误堆栈跟踪声称对 basePath 的引用为空:
{
"Timestamp": "2019-04-23T14:01:00.9644622+03:00",
"ProviderName": "Microsoft-ServiceFabric",
"Id": 54430,
"Message": "EventName: StatelessReplicaNewHealthReport Category: Health Partition=4d20cbee-372e-42d1-952e-738538152b1e StatelessInstance=132004907032061609 SourceId=System.RA Property=ReplicaOpenStatus HealthState=Warning TTL=922337203685477ms SequenceNumber=132004908536921071 Description='Replica had multiple failures during open on _Node_0. API call: IStatelessServiceInstance.Open(); Error = System.ArgumentNullException (-2147467261)
Value cannot be null.
Parameter name: basePath
at Microsoft.Extensions.Configuration.FileConfigurationExtensions.SetBasePath(IConfigurationBuilder builder, String basePath)
at Microsoft.AspNetCore.Hosting.DefaultApplicationInsightsServiceConfigureOptions.Configure(ApplicationInsightsServiceOptions options)
at Microsoft.Extensions.Options.OptionsFactory`1.Create(String name)
at System.Lazy`1.CreateValue()
at System.Lazy`1.LazyInitValue()
at Microsoft.ApplicationInsights.AspNetCore.TelemetryInitializers.ComponentVersionTelemetryInitializer..ctor(IOptions`1 options)
--- End of stack trace from previous location where exception was thrown ---
at System.Runtime.ExceptionServices.ExceptionDispatchInfo.Throw()
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.DynamicServiceProviderEngine.<>c__DisplayClass1_0.<RealizeService>b__0(ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceProviderServiceExtensions.GetService[T](IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ApplicationInsightsExtensions.<>c.<AddApplicationInsightsTelemetry>b__13_1(IServiceProvider provider)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitIEnumerable(IEnumerableCallSite enumerableCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitConstructor(ConstructorCallSite constructorCallSite, ServiceProviderEngineScope scope)
at Microsoft.Extensions.DependencyInjection.ServiceLookup.CallSiteRuntimeResolver.VisitScoped(ScopedCallSite scopedCallSite, ServiceProviderEngineScope scope)
at Micro [Truncated]' RemoveWhenExpired=False SourceUTCTimestamp=04/23/2019 14:00:53 ",
"ProcessId": 10100,
"Level": "Informational",
"Keywords": "0x4000000000000001",
"EventName": "HM",
"ActivityID": null,
"RelatedActivityID": null,
"Payload": {
"eventName": "StatelessReplicaNewHealthReport",
"category": "Health",
"eventInstanceId": "\"ae7ebe56-19d6-4c36-a6dd-5c12e9a3d36e\"",
"partitionId": "\"4d20cbee-372e-42d1-952e-738538152b1e\"",
"replicaId": 132004907032061609,
"sourceId": "System.RA",
"property": "ReplicaOpenStatus",
"healthState": 2,
"TTLtimespan": 922337203685477,
"sequenceNumber": 132004908536921071
}
}
]
我尝试在 ConfigureAppConfiguration 方法中注入 asp.net 核心配置(感谢这篇文章https://marcinjuraszek.com/2018/10/asp-net-core-configuration-when-running-as-service-fabric-service。 html ) 但它似乎设置了 asp.net 核心配置的基本路径,而不是应用程序洞察力。
解决方案
推荐阅读
- python - 我的代码仅在输入低于 31 [ProjectEuler100] 问题 #10-素数求和时有效
- mysql - 角8 | 用户认证
- android - 我是否需要重新编译 TensorFlow 才能更改 android SDK 和 NDK 的版本?
- swift - “类别”(又名“OpaquePointer”)类型的值没有成员“名称”
- java - 凯撒加密。73 中的索引 73 中的数组超出范围
- docker - 可以使用 logstash.yml 文件将 logstash 容器日志配置到特定路径吗?
- firebase - Firebase/Flutter:reload() 不刷新 user.isEmailVerified
- java - 如何在 Gradle 中查看我的依赖包的所有类名?
- gstreamer - 缺少元素:MPEG4-GENERIC 音频 RTP depayloader Gstreamer
- kubernetes - 让 Istio 忽略同一部署中两个容器之间的连接