System.InvalidOperationException: Operations that change non-concurrent collections must have exclusive access. A concurrent update was performed on this collection and corrupted its state. The collection's state is no longer correct.
at System.Collections.Generic.Dictionary`2.FindEntry(TKey key)
at Aliyun.Acs.Core.Regions.EndpointUserConfig.AddEndpoint(String product, String regionId, String domain)
https://github.com/aliyun/aliyun-openapi-net-sdk/blob/a2c710ba27a22b25ea2c43867da889b45459bd64/aliyun-net-sdk-core/Regions/EndpointUserConfig.cs#L16
上面代码中
endpoints
使用了非线程安全字典Dictionary<string, ProductDomain>
。在字典中查询key过程中其他线程对字典进行修改会导致InvalidOperationException
,异常堆栈信息如下:建议将
endpoints
类型修改为线程安全的ConcurrentDictionary<string, ProductDomain>
修复此问题 @AxiosCros