在 .NET 5 以后的 HttpClient 超时问题

背景

起因是朋友在使用深信服的 Easy Connect 连接到内网之后,使用 HttpClient 访问对应内网的 API 站点均返回 System.Net.Sockets.SocketException (10060) 异常。但使用其他语言的原生 HTTP 库,比如 Golang / Python / Java 都可以正常访问,因此怀疑是 HttpClient 的问题。

WCF 服务容器化的一些问题

背景

目前项目当中存有 .NET Framework 和 .NET Core 两种类型的项目,但是都需要进行容器化将其分别部署在 Windows 集群和 Linux 集群当中。在 WCF 进行容器化的时候,遇到了以下几个问题:

  1. 某些服务使用到了 WSHttpBinding 保护服务安全,要在容器里面加载 SSL 证书。
  2. WCF 服务的日志,如何重定向到标准输出流?

基于 Godaddy 与阿里云, 一键申请 SSL 证书

部署

acme.sh 的部署我采用的是 docker 方式进行部署,相应的 docker-compose.yaml 文件内容如下。

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
version: "3"

services:
  acme.sh:
    image: neilpang/acme.sh:latest
    container_name: acme.sh
    command: daemon
    volumes:
      - "./Volume:/acme.sh"
      - "/var/run/docker.sock:/var/run/docker.sock"
    environment:
      - DEPLOY_DOCKER_CONTAINER_LABEL=__nginx__
      - DEPLOY_DOCKER_CONTAINER_RELOAD_CMD="nginx -s reload -c /etc/nginx/nginx.conf"
    restart: always
    networks:
      - internal-network

networks:
  internal-network:
    external: true

其中 ./Volume 是用于挂载证书文件夹的。

Built with Hugo
主题 StackJimmy 设计