我正在研究一个将Service Fabric用于微服务的项目。我对ServiceFabric非常陌生,我的第一个任务是使用ApplicationInsight从Service Fabric应用程序收集遥测数据。因此,我应该使用Microsoft.ApplicationInsights.ServiceFabric.Native包,因为可以通过遥测捕获SF上下文数据。我还指的是https://docs.microsoft.com/en-us/azure/service-fabric/service-fabric-tutorial-monitoring-aspnet文档。
首先,我使用默认模板创建了一个示例无状态SF项目,并配置了Application Insight。然后,我尝试根据文档安装Microsoft.ApplicationInsights.ServiceFabric.Native软件包。但我收到以下错误:
Install-Package : NU1107: Version conflict detected for Microsoft.ServiceFabric.Diagnostics.Internal. Reference the package directly from the project to resolve this issue.
BasicCalculatorService -> Microsoft.ServiceFabric.Services 3.2.162 -> Microsoft.ServiceFabric.Diagnostics.Internal (= 3.2.162)
BasicCalculatorService -> Microsoft.ApplicationInsights.ServiceFabric.Native 2.1.1 -> Microsoft.ServiceFabric.Services.Remoting 3.0.467 -> Microsoft.ServiceFabric.Diagnostics.Internal (=
3.0.467).
At line:1 char:1
+ Install-Package Microsoft.ApplicationInsights.ServiceFabric.Native -V ...
在Microsoft.ApplicationInsights.ServiceFabric.Native包上似乎未更新Microsoft.ServiceFabric.Diagnostics.Internal以与SF一起使用。
我该如何进行?我应该单独下载NuGet软件包并手动引用该程序集吗?
答案 0 :(得分:0)
在文档中,有一个明确的注释:
您可能需要安装 Microsoft.ServiceFabric.Diagnistics.Internal包中的类似内容 安装Application Insights之前未预先安装的方式 包装
这意味着,他们知道此问题,但会让您发现它。 :)
Microsoft.ServiceFabric.Diagnistics.Internal
是对
Microsoft.ServiceFabric.Services
,因为两者都是隐式的并且针对不同的版本,因此您必须明确声明要同时使用两者。
在这种情况下,您应该在安装软件包Microsoft.ServiceFabric.Diagnostics.Internal 3.2.162
之前添加软件包Microsoft.ApplicationInsights.ServiceFabric.Native
请记住,因为它们针对不同的版本,所以您可能会在运行时遇到问题,理想的情况是两个版本都相同。