zoukankan      html  css  js  c++  java
  • 关于 identityserver4 接入 skywalking System.Data.SqlClient 报错

    环境

    1. identityserver4 3.1.4
    2. skywalking 8.1.0
    3. asp.net core 3.1.8
    4. efcore 3.1.8
    5. skyapm-net 1.0.0

    背景

    skywalking是什么就不介绍了,百度很多。.net core接入也非常简单:SkyAPM-dotnet

    // 1. 添加包
    <PackageReference Include="SkyAPM.Agent.AspNetCore" Version="1.0.0" />
    // 2. 添加配置文件
    "SkyWalking": {
        "ServiceName": "IdentityServer",
        "Namespace": "Infrastructure",
        "HeaderVersions": [
          "sw8"
        ],
        "Logging": {
          "Level": "Information",
          "FilePath": "logs\skyapm-{Date}.log"
        },
        "Transport": {
          "Interval": 3000,
          // 8.1.0 是 v8
          "ProtocolVersion": "v8",
          "QueueSize": 30000,
          "BatchSize": 3000,
          "gRPC": {
            // 使用环境变量替换
            // "Servers": "192.168.0.230:11800",
            "Timeout": 10000,
            "ConnectTimeout": 10000,
            "ReportTimeout": 600000,
            "Authentication": ""
          }
        }
      }
    // 3. 添加环境变量
    ASPNETCORE_HOSTINGSTARTUPASSEMBLIES="SkyAPM.Agent.AspNetCore"
    

    公司用identityserver4做单点登录和令牌的颁发。于是想用skywalking观察一下identityserver4服务的响应情况。
    接入还是那么顺滑。。。
    提交代码 -> merge 代码 -> 自动打包镜像上传仓库 -> 部署 一气呵成,简直不要太完美,准备收拾收拾下班回家。

    问题

    然而事情并没有想象中那么简单,启动报错。。。assmbly System.Data.SqlClient 4.6.1 not found what???

    解决之路

    Round 1

    好吧,很简单嘛,安装一下SqlClient 4.6.1不就好了,提交代码 -> merge 代码 -> 自动打包镜像上传仓库 -> 部署 一气呵成,简直不要太完美,第二次准备下班回家。。。
    果然是事情并没有那么简单。。。依然报错。。。

    Round 2

    那只能是identityserver4 与 skyapm-net 的依赖包冲突了,项目中用的efcore版本为3.1.8,看了下skyapm-net好像是用的3.1.0
    难道是这个版本的问题,果断降级。。。提交代码 -> merge 代码 -> 自动打包镜像上传仓库 -> 部署 一气呵成,简直不要太完美,又一次准备下班回家。。。
    果然不是efcore版本的问题。。。

    Round 3

    我项目中也没显式的指定SqlClient用4.6.1,看了下skyapm-net发现它引用的SqlClient版本为4.8.0,那这4.6.1是什么鬼???
    不管了那项目中显式引用一下SqlClient4.8.0,保持跟skyapm-net一样总没问题了嘛,提交代码 -> merge 代码 -> 自动打包镜像上传仓库 -> 部署 忐忑等待结果。。。
    果然成功了。。。what???好吧,解决了就好,不求甚解。。。又已经下班一个小时了,下班回家。

    后记

    还是没找到是什么原因,不知道到底是哪儿冲突了,找不到问题所在,不如把锅抛给.net core吧,是不是它还是不够成熟,这个情况是不是应该编译时期就应该暴露出来,或者说在安装依赖的时候就应该提示,emmm....对的就是.net的问题。

  • 相关阅读:
    pat甲级1004 Counting Leaves
    pat甲级1003 Emergency
    pat甲级1002 A+B for Polynomials
    pat甲级1001 A+B Format
    【转载】sql注入之入门
    JavaScript基础学习笔记
    django 安装
    python web编程CGI
    python urllib库
    python数据库编程
  • 原文地址:https://www.cnblogs.com/wh-blog/p/13874199.html
Copyright © 2011-2022 走看看