C# Azure认知服务计算机视觉在QA中失败,但在开发中却能完美工作

C# Azure认知服务计算机视觉在QA中失败,但在开发中却能完美工作,c#,azure,computer-vision,C#,Azure,Computer Vision,我有这段代码,可以在C#API中运行Azure认知服务的计算机视觉API。我已经在Dev中运行了几个星期,现在一切都很好。然而,我将其转移到我们的QA环境中,突然我得到: InnerException{“无法从传输连接读取数据:远程主机强制关闭了现有连接。”}System.Exception{System.IO.IOException} 这告诉我该服务处于活动状态,但不可用。imageURL是一个完全格式的公共URL(图像) string imageURL=\u storageAccount.B

我有这段代码,可以在C#API中运行Azure认知服务的计算机视觉API。我已经在Dev中运行了几个星期,现在一切都很好。然而,我将其转移到我们的QA环境中,突然我得到:

InnerException{“无法从传输连接读取数据:远程主机强制关闭了现有连接。”}System.Exception{System.IO.IOException}

这告诉我该服务处于活动状态,但不可用。imageURL是一个完全格式的公共URL(图像)

string imageURL=\u storageAccount.BlobStorageUri.PrimaryUri.AbsoluteUri+container+“/”+fullFileName;
//创建客户机
ComputerVisionClient客户端=身份验证(cvEndpoint,cvSubscriptionKey);
//创建定义要从图像中提取的特征的列表。
列表功能=新列表()
{
VisualFeatureTypes.类别,VisualFeatureTypes.描述,
VisualFeatureTypes.Faces、VisualFeatureTypes.ImageType、,
VisualFeatureTypes.标记,VisualFeatureTypes.成人,
视觉特征类型。颜色,视觉特征类型。品牌,
VisualFeatureTypes.Object
};
//分析图像以获取特征和其他属性。
ImageAnalysisResults=await client.AnalyzeMageAsync(imageURL,features)//这里失败了

这是直接来自微软文档的非常普通的代码。有人知道这里会发生什么吗?

我通过在API中添加TLS1.1和1.2解决了这个问题。不确定为什么默认情况下1.0是1.0,但它是,认知服务API至少需要1.2

修复方法是添加以下行:

System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;

在此处找到解决方案:

看起来像是网络问题"? 有没有可能少数IP被阻止?您还验证了端点、订阅、区域配置吗?现在,我已将Azure认知服务网络设置设置为接受来自所有网络的请求,如下所述:。除了使用正确的键和端点外,我认为其他设置不太合适。我已经查看了监控,我的QA请求(失败的请求)在监控中不可见。
System.Net.ServicePointManager.SecurityProtocol |= SecurityProtocolType.Tls11 | SecurityProtocolType.Tls12;