随笔分类 - 常规问题记录
主要记录在工作和平时开发过程当中所遇到的问题。
摘要:0. 问题 新版本上线之后,发现内存猛涨,入站流量猛增,不清楚具体原因,部分接口提示 OOM 异常,随后 Pod 直接崩溃无限重启。 1. 准备 Pod 已经接入了 NewRelic 和 Graylog,但是仍然没有办法找到真正的罪魁祸手,此时只能进入 Pod 容器当中抓取内存 Dump 信息。我们
阅读全文
摘要:## 背景 起因是朋友在使用深信服的 Easy Connect 连接到内网之后,使用 `HttpClient` 访问对应内网的 API 站点均返回 **System.Net.Sockets.SocketException (10060)** 异常。但使用其他语言的原生 HTTP 库,比如 Golan
阅读全文
摘要:目前项目当中存有 .NET Framework 和 .NET Core 两种类型的项目,但是都需要进行容器化将其分别部署在 Windows 集群和 Linux 集群当中。在 WCF 进行容器化的时候,遇到了以下几个问题:
1. 某些服务使用到了 WSHttpBinding 保护服务安全,要在容器里面加载 SSL 证书。
2. WCF 服务的日志,如何重定向到标准输出流?
阅读全文
摘要:问题 在 Bitbucket 使用 Linux 机器上 ssh-keygen 工具生成的公钥作为 API KEY,然后在 Jenkins 里面存储对应的 SSH 私钥,最后执行 Job 的时候,Windows Agent 提示 SSH 密钥不正确。 > git fetch --tags --forc
阅读全文
摘要:问题 在使用 DevExpress 开发 WinForm 程序时,我是使用的默认皮肤进行开发。但客户要求标题栏背景色改为蓝色,标题文字颜色改为白色。 改颜色比较简单,参考了 "DevExpress Support" 的说明,通过获取皮肤更改 和 就可以实现。不过更改之后,发现在低分屏下面,标题文字出
阅读全文
摘要:背景 在使用 DevExpress 的 GridControl 为其实现 Checkbox 列,发现如果勾选了三行的数据,在遍历 GridControl 绑定的数据源时 Checkbox 列的数据仅有 2 行被更新。 原因 使用 Google 搜索了半天,在 DevExpress 的 "Suppor
阅读全文
摘要:问题 在使用 Abp 框架的后台作业时,当后台作业抛出异常,会导致整个程序崩溃。在 Abp 框架的底层执行后台作业的时候,有 语句块用来捕获后台任务执行时的异常,但是在这里没有生效。 原始代码如下: 调用接口时的效果: 原因 出现这种情况是因为任何异步方法返回 时,抛出的异常都会在 方法启动时,处于
阅读全文
摘要:问题 有时更新了一些内网的程序库/包,但仅仅是一些小的更改,不想增加版本号再推送到内网服务器。手动删除了 .nuget 文件夹下的相关包文件,但是使用 Visual Studio 重新构建的时候,其使用的包版本仍然不正确。 原因 原因未知,可能是由于缓存未清理彻底造成的。 解决 NuGet 包相关的
阅读全文
摘要:问题 将 SignalR 集成到 ASP.NET Core MVC 程序的时候,按照官方 DEMO 配置完成,但使用 DEMO 页面建立连接一直提示如下信息。 原始代码: 原因 出现该问题的原因是由于 CORS 策略设置不正确造成的,原始设置我是允许所有 Origin 来源。但是由于 dotnetC
阅读全文
摘要:问题 在实际开发过程当中我们可能会针对某些类型使用动态代理技术(AOP),注入了一些拦截器进行处理,但是一旦某个类型被动态代理了,那么就会生成一个代理类。这个时候在该类内部使用 方法获取到的 类型并不是实际类型的 ,而是代理类的 。 解决 那么我们如何在代理类当中获取到具体类型的 呢?其实 Cast
阅读全文
摘要:问题 使用 HTTP Client 请求 HTTPS 的 API 时出现 异常,并且证书已经传入。 下面就是问题代码: 原因 因为在发出 HTTPS 请求的时候, 都会检查 SSL 证书是否合法。如果不合法的话,就会导致抛出异常信息,而对方给出的证书是自签发的测试接口的证书,所以不是一个合法的 SS
阅读全文
摘要:问题 在使用 WRK 对应用服务进行压测的时候,提示 "too many open files" 信息,导致无法启动测试。 原因 CentOS 7.x 默认的打开文件数目限制为 ,如果在使用其他软件出现 "too many open files" 的错误。 解决 只需要更改 文件里面的内容,增加如下
阅读全文
摘要:问题 在自行构造 请求 SOAP 接口之后,返回 500 错误,并且提示 信息。 原因 造成这个问题的主要原因是因为缺少了 标头,所以提示该信息。 解决 解决问题很简单,只需要在请求的时候,为其 增加一个 标头,并且将其值设置为你需要调用的 SOAP 接口。 例如:
阅读全文