abp vnext 使用备注之微服务

从 https://docs.abp.io/en/abp/latest/API/Dynamic-CSharp-API-Clients 这里知道了如何配置将一个app server 配置为动态Http客户端代理。 简要归纳下: 假设:有服务A,服务B,服务C,和一个对外的Web ,其中 服务C依赖 服务B 。 1, 服务A,B,C,在 HttpApi.Client 层需通过AddHttpClientProxies 将各个服务的定义(Application.Contracts) 在这里注册。 2, 服务C 的应用层添加 B的 Application.Contracts 引用(或者package), 目的是可以在B里面使用B定义的app service . 3, 服务C 的Host层,需要添加 B 的Http代理层。目的是注册B的服务。否则会抛出 B的服务实现未注册的错误。 4, 对外的Web,需要添加 服务A,B,C 的Http代理层,原因同理。 Read more

abp vnext 使用之日期时间

abp 自带了一个 IClock接口,用来控制获取当前时间。 因为 DateTime.Now 本身默认情况下 是缺省timezone 的,所以,为了避免在系统中,不同的地方,获取的datetime 可能存在不一样的问题,统一抽象出一个 IClock 接口。 在 AbpClockOptions 中可以配置全局默认的DateTimeKind,如果希望使用 系统默认使用 UTC 的 Now, 可以配置 Kind 为 UTC,此配置默认是 Unspecified ,即未指定。 Read more

同一个函数内多个异步锁

通常,使用异步锁都是直接使用这个库 AsyncEx 中的 AsyncLock 。 先看看官方栗子: private readonly AsyncLock _mutex = new AsyncLock(); public async Task UseLockAsync() { // AsyncLock can be locked asynchronously using (await _mutex.LockAsync()) { // It's safe to await while the lock is held await Task.Delay(TimeSpan.FromSeconds(10)); } } 这个栗子的效果是如果有很多用户同时访问进来,里面的内容会 one by one 执行,不会出现同时执行的情况。 Read more

Git命令设置http代理

设置 git config --global http.proxy http://proxyUsername:proxyPassword@proxy.server.com:port 取消设置 git config --global --unset http.proxy 获取当前代理设置 git config --global --get http.proxy Read more

12345...